char * printstring(void)
{
return "my string";
}
既然函数所做的是返回一个字符数组,为什么我必须在声明中声明我的函数返回 char*
而不是 char[]
。
最佳答案
因为 C 的设计方式,数组在其中不是一等公民。您既不能返回它们,也不能按值将它们传递给函数。
如果你想实现其中任何一个,你必须将数组包装在一个结构中。
struct ten_chars{ char chars[10]; };
struct ten_chars printstring(void)
{
return (struct ten_chars){"my string"};
}
关于c - 为什么函数必须返回 char * 而不是 char 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335619/