我是 C 编程的初学者,我编写了一小段代码,如下所示:
char* aFunction() {
char aName[100] = "abc";
printf ("%s", aName);
return aName;
}
int main (int argc, char** argv) {
char* w = aFunction();
printf ("%s", w);
}
当我编译并运行时,我得到输出“abc(null)”,但我期待的是“abcabc”。有人可以向我解释为什么 w 变量打印 null 吗?我该如何解决这个问题,以便我可以在 main 中调用 printf 并获得“abc”?换句话说,将 aName 的值传递给 w 变量的正确方法是什么?
最佳答案
您不能在函数中返回 aName
,因为它是一个局部变量,从 aFunction
返回后会丢失
解决此问题的一种快速方法是像这样声明 aName
static
static char aName[100] = "abc";
关于c - 关于 C 中的返回类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33169790/