理解C 中的按值呼叫
在這個按值呼叫範例中,一個名為changeValue() 的函數接受一個整數argument,它表示從main() 函數傳遞的實際參數的副本。當函數將參數的值變更為 6 時,它會修改副本,而不是儲存在 main() 函數中的原始值。
這是因為按值呼叫會建立參數的新副本並將其傳遞給函數。因此,對函數內部副本所做的任何更改都不會影響原始值。
使用 Call-by-Reference 解決問題
修改原始參數從 main() 發送,我們需要使用引用呼叫。這涉及將引用(別名)傳遞給實際參數,而不是副本。
在範例中,這可以透過將changeValue() 函數簽章更改為:
void changeValue(int &value)
透過在參數類型之前使用與號(&),我們表明該函數接收對原始變數的引用。對參考所做的任何更改都將直接影響 main() 中的原始參數。
修訂後的程式碼:
#includeusing namespace std; void changeValue(int &value); int main() { int value = 5; changeValue(value); cout << "The value is : " << value << "." << endl; return 0; } void changeValue(int &value) { value = 6; }
有了此更改,當changeValue() 設定時引用6,main() 中的原始值將更改為6,導致輸出「The value is : 6.」。
以上是按值呼叫如何影響 C 中的參數修改?的詳細內容。更多資訊請關注PHP中文網其他相關文章!