2 u011244821 u011244821 于 2014.05.26 21:05 提问

C++中数组指针怎么输出每一个所谓的一维数组的头一个元素

#include
using namespace std;
int main()
{
int a[3][4] = {{1,3,5,7},{9,11,13,15},{17,19,21,22}};
int (* p)[4];
for(p = a; p < a + 3; p++)
{
cout << ((p + 0)) << " ";
cout << *p <<endl;
}
cout << endl;
return 0;
}
本来我是这么想的,令p = a后,p将指向二维数组中首元素的地址,而这个首元素是由4个整型元素组成的一维数组。想用cout << *p;输出每一行中的第一个元素,即a[0][0], a[1][0], a[2][0], 可是,为什么不管是cout << *p; 还是 cout << p; 都是输出地址信息

1个回答

lym753024200
lym753024200   2014.05.26 22:51

p是二级指针,*p是一级指针,所以都是地址,出错是因为你不知道二维数组的元素是一位数组,这个元素只是一个指针,不是这个一维数组的首元素,却是这个首元素的指针

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!