我有以下情況:的函數的返回值如何表現不同變量和數組
char *func1()
{
char val[]="This is test!";
return val;
}
現在在這裏,我知道char val[]
是本地陣列功能,它不會再用作函數返回。
現在爲什麼這不適用於以下情況?
char func2()
{
char val='C';
return val;
}
做了測試
int main()
{
printf("output1 :: %s \n",func1()); // print garbage characters
printf("output2 :: %c \n",func2()); // print `C`
return 0;
}
因爲'char func2()'返回函數局部變量'var'的*副本*。 – juanchopanza 2014-09-01 12:32:06