当前位置: 代码迷 >> 综合 >> sizeof() 与 strlen() 的区别
  详细解决方案

sizeof() 与 strlen() 的区别

热度:54   发布时间:2023-12-12 16:26:34.0

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 ”为止,计算结果也会因为运行环境的不同而有所不同。