一般来说,sizeof()用来计算数据(包括数组、变量、类型、结构体等)空间的字节数。
而strlen()用来计算字符数组的字符数,以‘\0’结束,并不把‘\0’计算在内。
但是有特殊情况。
1、指针
所有指针变量的sizeof,结果都为4。
如:int *p;sizeof(p)=4。但sizeof(*p)=sizeof(int)=4。
2、静态数组
char a[]=“hello”;则sizeof(a)=6。此时计算的数组的大小,而不是占用的字节数。
但对于一般的数组,不是静态数组,依然是计算的字节数。
如 int a[5];则sizeof(a)=4*5=20个字节。
3、数组做形参时,数组名当做指针用。同1。
如:void function(char a[])
则sizeof(a)=4。
885

被折叠的 条评论
为什么被折叠?



