C++,指向数组的指针

2025-05-01 00:35:48
推荐回答(4个)
回答1:

这么改一下就可以了:
cout << p << " ";
改为:
cout << **p << " ";

改过以后:
int main()
{
int a[3][2]={1,2,3,4,5,6};
int (*p)[2];
int i=0;

p=a;
for(p=a;pcout << **p << " ";

cout << endl;

return 0;
}

回答2:

第一个应该是这样(你是想输出每行第一个数吧?)
int main()
{
int a[3][2]={1,2,3,4,5,6};
int (*p)[2];

p=a;
for(p=a;pcout << *p[0]<< " "; //你原来用的p,输出的是p指针的内存地址,所以才会是16进制数

cout << endl;

return 0;
}

回答3:

在你的for循环中,cout << p << " "; 这句代码中的P指的是一维数组的首地址,即每一行的首地址,所以你输出的是地址的值。

我猜想像想输出a[0][0],a[1][0],a[2][0]的值,你可将上面的那句代码改为:
cout << **p << " ";

这样就可以达到你的要求。

希望可以帮到你~

回答4:

p是内存地址,内存地址在计算机中表示的是十六进制