int a[2][3][4];
1. a为指向数组首元素的指针。
2. &a为指向数组的指针。
3. sizeof作用于a时,取数组的大小,而不是指针的大小。
表达式 与a的距离(以int个数为单位)
a + 1 12 (可以把a看成一维数组,其元素类型为数组[3][4])
&a + 1 24
a[0] + 1 4
&a[0] + 1 12 (a[0]等价于int b[3][4]中的b, b + 1为4,&b+1为12)
sizeof(a) 24
sizeof(a[0]) 12 (a[0]等价于上述的b)
4. 字符串一般认为是指针常量,但sizeof作用于字符串时,取字符串大小(包含末尾NUL),而不是指针大小。
5. sizeof作用于&a时,gcc下作用于指针,vc下则作用于整个数组,感觉gcc更合理一些。
sizeof(&a),sizeof(&a[0]),sizeof(&a + 1),sizeof(&a[0] + 1)
在gcc下均是作用于指针,而在vc下,只有第一个是作用于数组,其余三个都作用于指针。