以下是引用田里兵蜂在2007-2-27 17:12:23的发言:
二维数组本质上跟一维数组上一样的,因为它也是按一维数组存放的
p=a是可以的 a就是数组的起始地址
*(p+5)=a[2][1]对
不过+1表示下一个存储单元
有的编译器不通过的
所以我感觉直接p=a[0]比较好
[此贴子已经被作者于2007-2-27 17:15:12编辑过]
----------------解决方案--------------------------------------------------------
刚刚算错了,是指向a[1][1]的,呵呵,谢谢斑竹啊
如何可以在屏幕中输入指针指向的数据元素
比如:
printf("%x(H)",(p+5)); /*显示的是地址*/
printf("%d",*(p+5); /*显示的是值*/
如何在屏幕中看到(p+5)指针变量指向a[1][1],在屏幕上显示a[1][1]
----------------解决方案--------------------------------------------------------
可以p=a也可以是p=a[0],还可以是p=&a[0][0]
二维数组中a[0],a[1],a[2],代表的其实是每一行的首地址所以也也可以用
p=a[0];
其实不管你给p是谁的指针都是一样的,只不过要是给的是首地址的话就可以用p++进行移动指针方便
----------------解决方案--------------------------------------------------------
把p定义为 int (*p)[m]的形式,指向一个一位数组,里面有m个整型元素,这样就可以写p=a;了(a为二维数组名)
----------------解决方案--------------------------------------------------------