数组和指针

来源:互联网 发布:ubuntu 实时聊天工具 编辑:程序博客网 时间:2024/06/06 03:27

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下,只有第一个是作用于数组,其余三个都作用于指针。

原创粉丝点击