用指针访问二维数组中的数据,出现数据乱序输出。
应该为:p=a[0]=&a[0][0];指针p保存的是int *类型的数据,指针p所指向的数据类型是int 类型,所以p+1应该向下走sizeof(int)个字节,即走四个字节(一个数据),此时p+1=&a[0][1];i变化1,要向下走3个数据(即每一行的列数),所以算下来i每变划一个,p所保存的地址要往下走3*sizeof(int)个字节即3三个数据;指针p保存的是a[0]地址,p+1,就认为走一个一维数组个数据(即指向下一个一维数组的首地址),错误的把*((p+i)+j)当作 了a[i][j]。
原创
2023-03-27 18:58:10 ·
138 阅读 ·
1 评论