#include<stdio.h>
void fun(int b[100])
{
printf("%d\n",sizeof(b));
}
void main()
{
int *p=NULL;
int a[100];
printf("%d\t",sizeof (p));
//4
p指向一个NULL的指针;
printf("%d\t",sizeof (*p));
//4
*p是指向指针的第一个数;
printf("%d\t",sizeof (a));
//400
a是数组名,表示整个数组的大小;
printf("%d\t",sizeof (&a));
//400
&a是指向数组a的地址;
printf("%d\t",sizeof (&a[0]));
//4
&a[0]是指向第一个元素的地址,地址为int型;
printf("%d\t",sizeof (a[0]));
//4
a[0]是第一个元素,为int型;
printf("%d\n",sizeof (int));
//4
int型变量的大小;
fun(a);
//4
数组传递时是传递数组的头指针,所以是int型;
}
结果是:4 4 400 400 4 4 4
4