#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;
}