【发布时间】:2012-11-08 15:17:32
【问题描述】:
如果我传递一个 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);
这不仅会在本地更改数组。
结构呢?工会?指向它们的指针也通过了?
【问题讨论】: