最近我遇到了一个小问题,困扰了我很长一段时间,但遇到了一些解释。虽然它仍然有点混乱。数据和堆栈部分
char *getString()
{
char *str = "Print Me!";
return str;
}
int main()
{
printf("%s", getString());
getchar();
return 0;
}
给出输出为: Print Me!
虽然
char *getString()
{
char str[] = "Print Me!";
return str;
}
int main()
{
printf("%s", getString());
getchar();
}
给出一个垃圾值。为什么如此。
如果你的编译器遇到警告级别,一个体面的人会发出这个bug的诊断。 –