【发布时间】:2015-12-13 18:28:39
【问题描述】:
我是 C 语言的新手,我想知道:
为什么 C 函数不能返回数组类型?
我知道数组名是数组第一个值的地址,而数组是 C 中的二等公民。
【问题讨论】:
-
相关帖子:stackoverflow.com/questions/5157439/…。它是关于 C++ 的,但 C++ 这样做是因为 C。
-
如果你使用 C++11,你可以传递一个数组容器:
std::array<int, 3> a2 = {1, 2, 3};,它具有像普通数组一样的运算符。 -
没有真正的数组是从 1970 年代的语言继承而来的。您可以通过将数组包装在
struct中来解决此限制。 -
APL 可以追溯到 1960 年代,适用于“真实”数组,包括多维数组。回到问题,这是设计 C 语言以通过引用而不是通过值传递数组的人们做出的选择。
-
不同意将 C 问题链接到 C++ 副本
标签: c arrays return return-type