Следующий код - это интервью qusetion, и я не могу понять результат. Может ли кто-нибудь помочь? Благодарю.Каков результат следующего кода и почему?
#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, как ожидалось, второй - Undefined Behavior, поскольку вы возвращаете локальную переменную, которая вышла за рамки. –
@PaulR: Почему бы не написать свой комментарий в ответе? – alk