以下代碼是面試問題,我無法理解輸出。誰能幫忙?謝謝。以下代碼的輸出是什麼?爲什麼?
#include <stdio.h>
char* string_1()
{
char* p = "ABCD";
return p;
}
char* string_2()
{
char p[] = "ABCD";
return p;
}
int main(void)
{
printf("%s\n",string_1());
printf("%s\n",string_2());
}
輸出是什麼?你對輸出有什麼期望? – lulyon
第一個是預期的ABCD,第二個是未定義行爲,因爲您正在返回一個已超出範圍的局部變量。 –
@PaulR:爲什麼不發表評論作爲答案? – alk