#include
char *fun()
{
static char arr[1024];
return arr;
}
int main()
{
char *str = "geeksforgeeks";
strcpy(fun(), str);
str = fun();
strcpy(str, "geeksquiz");
printf("%s", fun());
return 0;
}
(一)极客
(B)怪胎
(C) geeksforgeeks geeksquiz
(D)编译器错误答案: (B)
说明:请注意arr []在fun()中是静态的,因此返回地址没有问题,即使fun()返回并且所有对fun()的调用都共享同一个arr [],arr []仍会保留在那里。
strcpy(fun(), str); // Copies "geeksforgeeks" to arr[]
str = fun(); // Assigns address of arr to str
strcpy(str, "geeksquiz"); // copies geeksquiz to str which is address of arr[]
printf("%s", fun()); // prints "geeksquiz"
这个问题的测验
想要从精选的最佳视频中学习和练习问题,请查看《基础知识到高级C的C基础课程》。