Sizeof与Strlen的区别与联系解析
字符串里的老搭档——sizeof和strlen,一个搞字节数,一个搞字符数,别看名字像,用法可挺不一样。
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。
想多看看字符串的骚操作?这几个文章你可以瞄一眼:
9.16KB
文件大小:
评论区