将数组与结构传递给函数

在C中,数组作为指针传递给函数。 结构可以通过值或地址(指针)传递给函数。 是否有任何特定原因导致我们无法按值传递数组,但我们可以按值传递structre?

在C中, 一切都按值传递。 还有另一条规则说,在大多数情况下,数组的名称等同于指向其第一个元素的指针。 将数组传递给函数就是这样的背景。

因此,特殊情况不是数组是通过引用传递的,特殊情况是关于数组衰减到指针的规则 。 这给人一种印象,即数组通过引用传递(实际上它是,但现在你知道为什么!)

上面链接中的post更详细地解释了不同上下文中数组的类型。