#include<iostream.h>
void main()
{
int arr[2][3][2]={{{2,4},{7,8},{3,4},}, {{2,2},{2,3},{3,4}, }};
cout<<**(*arr+1)+2+7;
}
根据我的说法,答案是 11,但编译器显示的是 16。 谁能解释一下解决方案? 提前致谢
最佳答案
*arr
等同于 arr[0]
。
*(arr[0]+1)
等同于 arr[0][1]
。
*arr[0][1]
等同于 arr[0][1][0]
。
因此,您的代码等同于:
#include<iostream.h>
void main()
{
int arr[2][3][2]={
{{2,4},{7,8},{3,4},},
{{2,2},{2,3},{3,4},}
};
cout << arr[0][1][0]+2+7;
}
arr[0][1][0]
是 7,所以你得到 7+2+7,也就是 16。
关于c++ - 基于指针的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34568592/