为什么C函数不能返回数组?语言设计的基本原理是什么?

fou*_*ric 19 c arrays function

我是一个初学程序员并且对C知之甚少.我知道的一件事但是没有向我解释过为什么函数不能返回数组.通过使用指针或将数组包装在a中,可以很容易地避免这种情况(从函数返回一个2d数组)struct,但我的问题是"为什么?".

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

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

Ale*_*kov 0

猜测...

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