sizeof(数组名)与sizeof(*数组名)
举例
#include<stdio.h>
int main()
{
int a[5]={1,2,3,4,5};
int *p = a;
printf("sizeof数组名=%d\n",sizeof(a));
printf("sizeof *数组名=%d\n",sizeof(p));
}
运行结果
sizeof数组名=20
sizeof *数组名=4
a为含有5个元素的数组,数组名代表元素的首地址,所以sizeof(a)代表整个数组所占的内存空间,即54Byte=20Byte;而a表示指向首地址,即表示首地址的内容,所以sizeof(*a)表示首元素所占内存空间的大小