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=]'.

之前的字符数