C - sizeof(字符串)结果小于应有的结果

时间:2013-10-07 19:15:07

标签: c sizeof

我知道字符串的长度应为n + 1,但由于某种原因,我的程序将sizeof(字符串)打印为n-2。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char name [] = "Tom";
    int x = sizeof(name);
    int i;

    printf("sizeof(name) = %d\n", i);

    for(i = 0; i < x; i++)
    {
        printf("Character at %d is %c\n", i, name[i]);
    }

    return 0;
} 

任何人都可以解释原因吗?

1 个答案:

答案 0 :(得分:6)

您正在打印i,而不是x i从未初始化,因此您会得到未定义的行为。