如果我传递一个int值,它将被传递。
void something(int i)
如果我通过一些类型的阵列,将通过引用传递的。
void something(int i[])
OR void something(int *i);
哪些类型按引用传递,哪些类型按值传递?
类型如int将由值传递,阵列将作为引用传递。
第一个问题是,还有更多的类型会通过引用传递吗?
第二个问题是,数组(int i[])
的第一次通过与第二次(int *i)
的第一次通过有什么区别?
编辑: 我会澄清我的问题。 您传递给函数的其他类型(如数组)在函数内部可以更改。 (正如你所解释的那样,它并不完全按照引用传递)。
void something(int i[])
{
i[0]=5;
}
something(i);
这将改变阵列不仅在本地。
结构怎么样?工会?指向他们的指针也传递了?
谢谢你的回答,我澄清了我的问题。 – Lior