有关教材中二维数组基类型和存储单元的疑问
高教版C语言教材中有关二维数组和指针关系的部分,有几条说明我没有看明白,想求论坛大神帮忙解惑。1.定义如下:
int *p, a[3][4];
在此定义下,教材中说a[0]+1中的1应该理解为2个字节。但是前面我看到,在vc6.0的环境下,int类型的数据是占用4个存储单元的,a[0]既然代表的是二维数组中第一行的首地址值,+1就应该代表a[0][1]的地址值,也就是变化了一个存储单元才对,那么1应该是4个字节啊,为什么是2个字节呢?
2.教材中说,以上a数组,数组名a的值与a[0]的值相同,只是其基类型为具有4个整形元素的数组类型。请问这个“其”是指a还是a[0]?或者再详细的问下,如何理解a与a[0]的基类型不同,不都是int类型吗?为什么定义中的指针变量p与a[0]的基类型相同,与a就不同了呢,a不也是个地址值么,为什么不可以赋值给p?