如果我传递一个 int ,它将按值传递。
void something(int i)
如果我传递某种类型的数组,它将通过引用传递。
void something(int i[])
或者
void something(int *i);
像 int 这样的类型将通过值传递,数组将作为引用传递。
第一个问题是,是否还有更多类型可以通过引用传递?第二个问题是,数组的第一遍和第二
遍有什么区别?(int i[])
(int *i)
编辑:我会澄清我的问题。您传递给函数的其他类型(例如数组)将在函数内部进行更改。(正如您所解释的,这并不完全是通过引用传递)。
void something(int i[])
{
i[0]=5;
}
something(i);
这不仅会在本地更改数组。
结构呢?工会?指向它们的指针也通过了吗?