19

我是一个初级程序员,对 C 知之甚少。我知道但没有向我解释过的一件事是为什么函数不能返回数组。这很容易通过使用指针或将数组包装在 a 中来规避(从函数返回二维数组struct) ,但我的问题是“为什么?”。

为什么函数不能返回数组?

我知道有一些简单的解决方法,但是自从我发现这个问题以来,这个问题一直困扰着我。这是 C 内部设计的缺陷,还是故意放在那里的?存在此限制是否有特殊原因?

4

2 回答 2

0

猜测...

  • 预计数组很大(或至少不小),因此复制数组以允许“值类型”行为将花费大量时间。人们会期望=复制数组,从而在代码中引入隐藏的缓慢,这从来不是 C 的明确目标。
  • C 中的数组在任何地方都不包含大小 - 没有简单的技术方法来实现复制作为当前“数组”概念的值,因为它存在于语言中。
于 2013-01-25T01:26:41.467 回答
0

我不确定,但我认为。

  1. C是在内存受限时开发的。
  2. 有人可能会告诉替代方案,我们可以返回指针,而不是传递完整的数组,那么为什么要提供其他不太好的替代方案。
于 2013-01-25T01:29:17.907 回答