[整理]C语言中的a,&a和&a[0]
2014-06-22 10:46 Benoly 阅读(770) 评论(0) 编辑 收藏 举报#include<stdio.h> int main(void) { int a[]={1,2,3}; printf("%0X\n",a); // a的类型原本是int [3],是个导出类型; 当a赋值给int *指针的时候,类型退化为int *,a+1指向a[1] printf("%0X\n",&a); // &a的类型是int (*)[3], &a+1指向下一块int[3]的另一个数组;如果有的话,即二维数组的的情况: int (*p)[3]=&a;。 printf("%0X\n",&a[0]); // &a[0]的类型是int *,&a[0]+1指向a[1] printf("%d\n",sizeof(a)); //12,数组长度3*sizeof(int) printf("%d\n",sizeof(&a)); //4,指针大小 printf("%d\n",sizeof(&a[0])); //4,指针大小 return 0; }