如果我傳遞一個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