【发布时间】:2017-07-26 19:15:18
【问题描述】:
char * printstring(void)
{
return "my string";
}
既然函数的作用是返回一个字符数组,为什么我必须在声明时声明我的函数返回 char* 而不是 char[]。
【问题讨论】:
-
C 函数不能返回数组,尽管它可能返回包含数组的
struct。 -
这个函数无论如何都应该返回
const char*。 -
@Rabbid76:如果您的意思是“这将有助于检测非法写入访问”,那么您是正确的。但不幸的是,由于遗留原因,它在 C 中不需要,这些原因本应深埋 20 年。
-
您需要返回数组的起始地址才能访问您可以使用 *.我不认为我们可以直接返回数组。
-
"因为函数所做的是返回一个字符数组" 不,完全不是!它返回数组的地址(此处为字符串)第一个元素(此处为
char)。