第1个回答 2011-04-01
[0]是首地址, &a[0][0]+3*1+2是首地址后面第五个元素,也就是a[1][2]
不能 p=a 这样赋值,p是int*[2]类型,a是int[2][3]类型 类型不同不能赋值
int a[2][3]是申请的一个连续地址,而*p[2]是一个指针数组,如果你能把每一行的首地址赋给这个指针数组的话,可以这么使用。但是如果只是给首地址赋值的话,此时这个指针数组的第二个元素,也就是第二行的首地址为一个随意地址,没有意义,不是连续的,所以不能实现*(p+3*1+2)来表示a[1][2]本回答被提问者采纳
第2个回答 2011-04-01
[0]是首地址, &a[0][0]+3*1+2是首地址后面第五个元素,也就是a[1][2]
不能 p=a 这样赋值,p是int*[2]类型,a是int[2][3]类型 类型不同不能赋值
int a[2][3]是申请的一个连续地址,而*p[2]是一个指针数组,如果你能把每一行的首地址赋给这个指针数组的话,可以这么使用。但是如果只是给首地址赋值的话,此时这个指针数组的第二个元素,也就是第二行的首地址为一个随意地址,没有意义,不是连续的,所以不能实现*(p+3*1+2)来表示a[1][2]
另外,虚机团上产品团购,超级便宜
第3个回答 2011-04-01
列数就是 4
比如 a[1][2] 就是 &a[0][0]+4*1+2=&a[0][0]+6 也就是后退6个位置。
因为这是一个int型的数组,每个占2个字节的空间。
&a[0][0]是 1 再加6个位置就是12个字节 1+12=13