`

C语言中对sizeof()和strlen()的说明

 
阅读更多

1.sizeof函数

sizeof函数返回表达式所占的内存空间(以字节为单位)

 例:


#include<stdio.h>

#define MONTHES 12

int main(void)
{
	int days[MONTHES] = {31,28,31,30,30,30};
	
        int len = sizeof(days);
	printf("days:%d",len);
	
	return 0;
}


 这段程序输出的结果为:days:48    

 因为一个int型在内存中占4个字节,而days数组有12个元素,故共48字节

 另外若想求此数组长度,可用如下语句:

int len = sizeof(days) / sizeof(days[0]);  

  /*sizeof(days)是整个数组所占的字节数,sizeof(days)时数组中一个元素所占的字节数*/

2.strlen函数

     此函数包含在string.h头文件中。返回字符串长度 ,而非在内存中的字节数,

   以"\0"为结束判断,且'\0'不算入总数。

3.sizeof和strlen比较

      strlen只计算字符串的长度,且'\0'不计算在内。而sizeof可计算各种数据类型在内存中所占的字节数。

且sizeof在计算字符串长度时(char类型在内存中只占一个字节,故用sizeof函数计算字符串时相当于计算其长度),'\0'计算在内。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics