C语言中strlen()和sizeof()的区别

假如想象 提交于 2019-11-28 09:28:21

C语言中strlen()和sizeof()的区别

先看下面的一个程序

#include<stdio.h>
#include<string.h>
#define PRAISE "My name is Bai Jiangwei"
int main(void)
{
	char name[40] = "BaiJiangWei";
	printf("%u  %u \n",strlen(name),sizeof(name));
	printf("%u  %u \n",strlen(PRAISE),sizeof(PRAISE));
}

程序的结果如下

11  40
23  24
Press any key to continue

结论

  • 对于一个字符串变量,strlen()的结果是字符串本身的长度,在本例中BaiJiangWei长度为11;而sizeof(name)的结果是该字符串变量在定义时的长度,在本例中char name[40],故sizeof(name)结果为40
  • 对于一个字符串常量,我们定义时并没有定义其长度,所以strlen()的结果就是字符串本身长度,而sizeof()的结果是strlen()+1,多出来的长度1,实际上就是\0
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!