问题几乎是不言自明的,但我将添加一个示例来澄清它。
例如,我们有这个函数:
char abc(void)
{
code...
code...
return a;
}
这个函数会将 char a 返回到 abc,但是函数可以在不使用指针、文件 I/O 之类的情况下返回整个字符串吗?
最佳答案
C 字符串是 char
数组,以值为 0
的 char
结尾。 C 函数不能返回数组本身,包括字符串,实际上也不能将数组作为参数传递。传递和/或返回指针是 C 语言中传递和/或返回数组的替代方案。在很大程度上,您甚至不需要做任何特殊的事情来传递或返回指针来代替数组。
因为精确地谈论这些事情有点麻烦,所以指针/数组的区别经常被排除在讨论甚至文档之外。人们经常将 char *
称为字符串,而实际上该字符串是其第一个元素所指向的数组。然而,这确实存在混淆的可能性,正如问题和相关评论中显而易见的那样。
关于c中函数可以返回字符串吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34225258/