请看下面的代码:
char* test ( )
{
char word[20];
printf ("Type a word: ");
scanf ("%s", word);
return word;
}
void main()
{
printf("%s",test());
}
当函数返回时,变量word
被销毁并打印一些垃圾值。但是当我更换
char word[20];
经过char *word;
它打印正确的值。据我说,指针变量应该像字符数组一样被销毁,输出应该是一些垃圾值。谁能解释一下歧义?