sizeof 是关键字不是函数,就是计算变量所占空间大小。
sizeof(int)*p 表示什么意思?
看下面程序分析:
#include <stdio.h>
#include <stdlib.h>
void fun(int b[100])
{
printf("b = %d\n",sizeof(b));// sizeof (b) 的值是多少?
//传递一维数组 传过来的是数组名 是个地址
}
int main(void)
{
int *p = NULL;
printf("p = %d\n",sizeof(p)); //p为指针存放地址为4字节
printf("*p = %d\n",sizeof(*p));//*p是一个int型变量为4字节
int a[100];
printf("a = %d\n",sizeof(a)); //a是数组的首元素为数组名400个字节
printf("a[100] = %d\n",sizeof(a[100]));//a[100]是一个int类型为4字节
printf("&a = %d\n",sizeof(&a)); //地址都是4字节
printf("&a[0] = %d\n",sizeof(&a[0]));//首地址为4字节
int b[100];
fun(b);
return 0;
}
打印出:
p = 4
*p = 4
a = 400
a[100] = 4
&a = 4
&a[0] = 4
b = 4