关于二维数组,为什么两个输出不一样?
各位朋友,
代码如下:
int main()
{
int a[4][5] = {{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15},{16,17,18,19,20}};
int (*p)[5];
p = a;
for(int i = 0; i < 4; i++)
{
p = a + i; //当改为 p = p + i 时,输出有误。
for(int j = 0; j < 5; j++)
{
cout<<*(*p + j)<<" ";
}
cout<<endl;
}
}
在我的电脑上,用eclipse编译,正常输出结果为:
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
当将p = a + i; //当改为 p = p + i 时,输出有误,输出结果为:
1 2 3 4 5
6 7 8 9 10
16 17 18 19 20
4198585 1 8065296 8067040 -1
这是为什么呀?