当前位置: 代码迷 >> C语言 >> [求助]指针如何给二维数组赋值
  详细解决方案

[求助]指针如何给二维数组赋值

热度:75   发布时间:2007-02-27 17:14:09.0
以下是引用田里兵蜂在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为二维数组名)


----------------解决方案--------------------------------------------------------
  相关解决方案