一维数组
int a[] = {1,2,3,4};
printf("%d\n",sizeof(a)) ; //16 sizeof+数组名表示整个数组的大小
printf("%d\n",sizeof(a+0)); //4 首元素地址
printf("%d\n",sizeof(*a)); //4 首元素地址解引用=首元素
printf("%d\n",sizeof(a+1)); //4
printf("%d\n",sizeof(a[1])); //4
printf("%d\n",sizeof(&a)); //4整个数组的地址,地址的字节为4 (VC6.0中等于16 是bug)
printf("%d\n",sizeof(*&a)); //16整个数组的地址解引用=整个数组的大小
printf("%d\n",sizeof(&a+1)); //4 下一个数组的地址
printf("%d\n",sizeof(&a[0])); //第一个元素的地址
printf("%d\n",sizeof(&a[0]+1)); //第二个元素的地址
字符型数组
char arr[] = {'a','b','c','d','e','f'};
printf("%d\n", sizeof(arr)); //6整个数组的大小
printf("%d\n", sizeof(arr+0)); //4 首元素地址,地址的字节为4
printf("%d\n", sizeof(*arr));