关于数组的指针问题2
来源:6-3 一般指针,数组指针和指针数组
饿少
2021-05-17
int c[] = {1, 2, 3, 4};
int (*p)[4];
p = &c;
cout << *p << endl;
我的理解:
因为p是指向数组c的指针,c的地址又是c[0]的地址,那么*p就应该是c[0]
实际运行:
*p 不是 c[0]的值,而是地址
不能理解
写回答
1回答
-
使用cout << (*p)[0] << endl;可以输出c[0]; int (*p)[4]是一个数组的指针,它一般对应二级数组,维度比一维数组要高一级;所以需要你先(*p),然后再引用一个维度。如果不是特别需要用C语言来实现这个,还是建议使用C++的数组,C语言的数组和指针混用很容易让人迷惑。
012021-05-18
相似问题