[讨论] 数组
若有以下定义和语句:static int w[2][3],(*pw)[3];
pw=w;
则对w数组元素的非法引用是:
A:*(pw[0]+2) B: *(pw+1)[2] C: pw[0][0] D: *(pw[1]+2)
请大家写详细点为什么是?为什么不是?谢谢!
----------------解决方案--------------------------------------------------------
如果不知道答案可以放到程序里测试.
pw指向w的首地址,并且pw+i指向的是w[i][0]的地址,即第i行的首地址
----------------解决方案--------------------------------------------------------
我想知道原理
----------------解决方案--------------------------------------------------------
我也想知道……
还有这样写对不对?
int a[5][5],*p;
p=a;
----------------解决方案--------------------------------------------------------
*(pw+1)[2]
pw+1 等价pw[1]
----------------解决方案--------------------------------------------------------
----------------解决方案--------------------------------------------------------
二维数组可以理解成数组的数组,这样想应该好理解些
----------------解决方案--------------------------------------------------------
好像都没 错啊````
----------------解决方案--------------------------------------------------------
ddddddddddd
猜的,不知道对不对.
----------------解决方案--------------------------------------------------------
B *(pw+1)[2] 是错误的
A:*(pw[0]+2) , w[0][2]
B: *(pw+1)[2] , *w[3]
C: pw[0][0] , w[0][0]
D: *(pw[1]+2) , w[1][2]
[此贴子已经被作者于2007-11-8 14:45:19编辑过]
----------------解决方案--------------------------------------------------------