当我们运行这段代码时,它可以正常工作并string constant
在屏幕上打印:
char *someFun(){
char *temp = "string constant";
return temp;
}
int main(){
puts(someFun());
}
但是当我们运行以下类似的代码时,它不会工作并在屏幕上打印一些垃圾:
char *someFun1(){
char temp[ ] = "string";
return temp;
}
int main(){
puts(someFun1());
}
背后的原因是什么?本质上,这两个函数都做类似的事情(即返回一个“字符串”),但它们的行为仍然不同。这是为什么?