sizeof() 求字节运算符,求某个内容实际占用内存的字节数。
strlen() 函数,求字符串的大小。
void main()
{char a[5] = "hello";char b[] = "world!!";printf("sizeof(a)=%d\n",sizeof(a) );printf("sizeof(b)=%d\n",sizeof(b) );printf("strlen(a)=%d\n",strlen(a) );printf("strlen(b)=%d\n",strlen(b) );}
运行结果如下:
注:strlen() 遇到“ \0 ” 计算结束,并且“ \0 ”不会包含在计算的大小内。
char a[5] = "hello";
strlen(a)的计算结果为什么等于11呢?
在进行该计算的时候,系统不会自动在末位添加“ \0 ”,所以统计到末位的时候,找不到“ \0 ”,就会继续找,向后统计,直到找到“ \0 ”为止,计算结果也会因为运行环境的不同而有所不同。