第一段代码是:
#include <stdio.h> char *getString() { char *str = "Will I be printed?"; return str; } int main() { printf("%s", getString()); }
第二段代码是:
#include <stdio.h> char *getString() { char str[] = "Will I be printed?"; return str; } int main() { printf("%s", getString()); }
在上述两个代码中,返回的 char 指针指向一个可能被覆盖的局部变量,但 code-1 仍然成功运行,而 code-2 打印垃圾值。