我知道字符串的长度应为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;
}
任何人都可以解释原因吗?
答案 0 :(得分:6)
您正在打印i
,而不是x
i
从未初始化,因此您会得到未定义的行为。