Memahami Panggilan demi Nilai dalam C
Dalam contoh panggilan demi nilai ini, fungsi yang dipanggil changeValue() mengambil integer argumen, yang mewakili salinan argumen sebenar yang diluluskan daripada fungsi main(). Apabila fungsi menukar nilai argumen kepada 6, ia mengubah suai salinan dan bukan nilai asal yang disimpan dalam fungsi main().
Ini kerana nilai panggilan demi nilai mencipta salinan baharu argumen dan menghantarnya ke fungsi. Oleh itu, sebarang perubahan yang dibuat pada salinan di dalam fungsi tidak akan menjejaskan nilai asal.
Menyelesaikan Isu Menggunakan Panggilan demi Rujukan
Untuk mengubah suai hujah asal dihantar dari main(), kita perlu menggunakan panggilan demi rujukan. Ini melibatkan menghantar rujukan (alias) kepada hujah sebenar, bukannya salinan.
Dalam contoh, ini boleh dicapai dengan menukar tandatangan fungsi changeValue() kepada:
void changeValue(int &value)
Dengan menggunakan ampersand (&) sebelum jenis hujah, kami menunjukkan bahawa fungsi menerima rujukan kepada pembolehubah asal. Sebarang perubahan yang dibuat pada rujukan akan secara langsung mempengaruhi hujah asal dalam main().
Kod Disemak:
#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; }
Dengan perubahan ini, apabila changeValue() ditetapkan rujukan kepada 6, nilai asal dalam main() akan ditukar kepada 6, menghasilkan output "Nilai ialah : 6.".
Atas ialah kandungan terperinci Bagaimanakah Panggilan demi Nilai Mempengaruhi Pengubahsuaian Hujah dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!