C中sizeof()

来源:互联网 发布:软件概要设计文档 编辑:程序博客网 时间:2024/05/17 03:01

一般来说,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    

0 0