Sizeof与Strlen的区别与联系解析

字符串里的老搭档——sizeofstrlen,一个搞字节数,一个搞字符数,别看名字像,用法可挺不一样。

sizeof是编译期的老好人,干啥都快。你给它个变量、类型、数组,它立马告诉你占了几个字节。比如int arr[5]sizeof(arr)直接甩你个 20,数组一整个地量,不分你情我愿。字符串也一样,sizeof("hello")出来是 6,连那一个\0都不放过。

strlen就不一样了,是运行时干活的,得一个一个数,碰到\0才停手。所以strlen("hello")是 5,看到这区别没?一个管全体,一个只看可见字符。你数组用sizeof,指针字符串时就靠strlen

有个小坑哦,sizeof对指针可不会自动追踪长度,它只告诉你指针自己多大,啥也不管指的东西。所以别把它当strlen用,不然分分钟内存乱飞。

写 C/C++的你啊,记得要用对场景。需要内存操作、数组边界时靠sizeof,要知道字符串多长就用strlen。两个配合着来,效率高,还省 bug。

想多看看字符串的骚操作?这几个文章你可以瞄一眼:

rar 文件大小:9.16KB