代码
#include<stdio.h>
#include<string.h>
int main()
{
char *a = "abcd\0\0";
char *b = "abcdefghasdasdghas";
printf("sizeof(a) = %ld\n",sizeof(a));
printf("strlen(a) = %ld\n",strlen(a));
printf("sizeof(b) = %ld\n",sizeof(b));
printf("strlen(b) = %ld\n",strlen(b));
return 0;
}
- 结果
sizeof(a) = 8
strlen(a) = 4
sizeof(b) = 8
strlen(b) = 18
理解
- sizeof属于逻辑运算符,计算该类型占字节数,而strlen是一个函数,其返回值是具体字符串的长度(有效内容)
- strlen 在计算时,不包括\0