我有这段代码片段
const int col= 5;const int row= 5;
int a[row][col] = {0};
int (*p)[col] ;
p = a;
这些陈述打印相同的地址
cout <<p;
cout << endl;
cout << *p;
在我看来,p
指向5 ints
的数组,取消引用它
应该给出第一个似乎并非如此的价值
救命!
答案 0 :(得分:6)
因为
的数组p
指向5ints
这是正确的。
取消引用它应该给出第一个值
不,它的类型是&#34;指向数组的指针&#34 ;;取消引用会给出&#34; array&#34;,当你对它做任何事情时会衰减到int*
指针 - 包括打印它。
如果您有指向int
int * p = a;
然后*p
确实会给出第一个数组元素。