解释 sizeof 如何确定字符串的长度。
#include<stdio.h>
int main()
{
char str[] = "Sasindar\0Baby\0";
printf("%d\n", sizeof(str));
return 0;
}
最佳答案
sizeof
不决定字符串的长度。它决定了一个结构在内存中占用多少字节。
在您的例子中,结构是 str
,一个字节数组。编译器知道有多少字节(包括尾部的两个 '\0'
)被放入数组中,因此它会在编译时生成正确的大小。 sizeof
不知道 str
是一个空终止的 C 字符串,所以它产生 15。
这与 strlen
形成对比,后者将您的字符串解释为 C 字符串,并返回第一个 '\0'
之前的字符数。
关于C 程序 - sizeof string with\0 个字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31760349/