首先我们先看一下下面的代码:
#include <stdio.h>
#include <string.h>
int main()
{
char changdu[] = "abcdef";
printf("%d\n",sizeof(changdu));
printf("%d\n",strlen(changdu));
return 0;
}
下面是结果:
要强调的是如果使用 strlen 需要添加预处理命令
#include <string.h>
可知:
1.sizeof是计算数组changdu所占空间的大小。changdu数组中含有7个char类型的元素,char类型在c语言中占1个字节,分别是‘a’,'b','c','d','e','f','\0',则7 * 1 = 7 。
2.strlen是计算数组changdu中字符串的长度。所求数是:‘\0’前面的字符个数。分别是‘a’,'b','c','d','e','f',则为6。
区别强调:
1.strlen 和 sizeof 没什么关联。
2.strlen 是求字符串长度---只能针对字符串求长度---库函数--使用得引头文件#include <string.h>。
3.sizeof 计算变量、数组、类型大小---单位是字节---操作符。