C 程序 - 带 \0 个字符的 sizeof 字符串
C program - sizeof string with \0 characters
解释 sizeof 如何确定字符串的长度。
#include<stdio.h>
int main()
{
char str[] = "Sasindar[=10=]Baby[=10=]";
printf("%d\n", sizeof(str));
return 0;
}
sizeof
不判断字符串的长度。它决定了一个结构在内存中占用多少字节。
在您的例子中,结构是 str
,一个字节数组。编译器知道有多少字节(包括两个尾部 '[=12=]'
)被放入数组中,因此它会在编译时生成正确的大小。 sizeof
不知道 str
是一个空终止的 C 字符串,所以它产生 15.
这与 strlen
形成对比,后者将您的字符串解释为 C 字符串,returns 第一个 '[=12=]'
.
之前的字符数
解释 sizeof 如何确定字符串的长度。
#include<stdio.h>
int main()
{
char str[] = "Sasindar[=10=]Baby[=10=]";
printf("%d\n", sizeof(str));
return 0;
}
sizeof
不判断字符串的长度。它决定了一个结构在内存中占用多少字节。
在您的例子中,结构是 str
,一个字节数组。编译器知道有多少字节(包括两个尾部 '[=12=]'
)被放入数组中,因此它会在编译时生成正确的大小。 sizeof
不知道 str
是一个空终止的 C 字符串,所以它产生 15.
这与 strlen
形成对比,后者将您的字符串解释为 C 字符串,returns 第一个 '[=12=]'
.