gpt4 book ai didi

c++ - 指针数组

转载 作者:太空宇宙 更新时间:2023-11-04 14:36:08 25 4
gpt4 key购买 nike

char *a[]={"diamonds","clubs","spades","hearts"};
char **p[]={a+3,a+2,a+1,a};
char ***ptr=p;
cout<<*ptr[2][2];

为什么显示h,请解释ptr的二维数组及其元素是如何实现的

最佳答案

注意 x[y]*x 绑定(bind)得更紧,所以表达式 *ptr[2][2] 被解释为*(ptr[2][2])

另请注意,x[y] == *(x+y)

因此

*(ptr[2][2]) == *(p[2][2])    // ptr = p
== *((a+1)[2]) // p[2] == a+1
== *(*(a+1+2)) // x[y] == *(x+y)
== *(*(a+3)) // 1+2 == 3
== *(a[3]) // *(x+y) == x[y]
== *("hearts") // a[3] == "hearts"
== "hearts"[0] // *x == *(x+0) == x[0]
== 'h'

关于c++ - 指针数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2677553/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com