<分区>
这是代码。
int main(int argc, char *argv[])
{
char name[5];
printf("%s\n",name);
system("PAUSE");
return 1;
}
printf 函数输出 ©。为什么它使用那个字符?在不同的情况下使用其他字符。我正在尝试更多地了解内存在 C 中的工作原理。
干杯:)
编辑 - 谢谢大家。您所有的回答对我都非常有用。
<分区>
这是代码。
int main(int argc, char *argv[])
{
char name[5];
printf("%s\n",name);
system("PAUSE");
return 1;
}
printf 函数输出 ©。为什么它使用那个字符?在不同的情况下使用其他字符。我正在尝试更多地了解内存在 C 中的工作原理。
干杯:)
编辑 - 谢谢大家。您所有的回答对我都非常有用。
最佳答案
tl;dr:该值未确定。
根据编译器的不同,数组的值是不确定的(大多数情况下)或零(一些特定的编译器会清理堆栈)。
大多数情况下,数组只是从堆栈中取出的一些内存空间,因此根据您使用它之前的内存区域,您可以在其中有许多不同的值。
关于c - C中如何确定空数组的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16235900/