这么改一下就可以了:
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;
}
第一个应该是这样(你是想输出每行第一个数吧?)
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;
}
在你的for循环中,cout << p << " "; 这句代码中的P指的是一维数组的首地址,即每一行的首地址,所以你输出的是地址的值。
我猜想像想输出a[0][0],a[1][0],a[2][0]的值,你可将上面的那句代码改为:
cout << **p << " ";
这样就可以达到你的要求。
希望可以帮到你~
p是内存地址,内存地址在计算机中表示的是十六进制