Dalam fungsi C++, parameter rujukan menghantar alamat pembolehubah, dan pengubahsuaian kepada parameter mempengaruhi pembolehubah asal, manakala parameter penuding menghantar penunjuk ke alamat dan pengubahsuaian kepada parameter tidak menjejaskan pembolehubah asal.
Perbezaan antara parameter rujukan dan parameter penunjuk dalam fungsi C++
Dalam C++, fungsi boleh menerima parameter rujukan atau parameter penunjuk. Walaupun kedua-duanya digunakan untuk menghantar alamat pembolehubah, terdapat beberapa perbezaan utama antara mereka.
Parameter rujukan
Parameter rujukan menghantar alamat pembolehubah melalui simbol &
. Ia pada asasnya melepasi pembolehubah itu sendiri, bermakna sebarang perubahan yang dibuat pada parameter rujukan itu ditunjukkan dalam pembolehubah asal. &
传递变量的地址。它本质上是传递变量本身,这意味着对该引用参数所做的任何更改都会反映在原始变量中。
代码示例:
void swap(int& a, int& b) { int temp = a; a = b; b = temp; } int main() { int x = 5; int y = 10; swap(x, y); // 交换 x 和 y 的值 cout << x << " " << y << endl; // 输出:10 5 }
指针参数
指针参数通过符号 *
Contoh kod:
void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; } int main() { int x = 5; int y = 10; swap(&x, &y); // 交换 x 和 y 的值 cout << x << " " << y << endl; // 输出:5 10 }
Parameter penunjuk
Parameter penunjuk melepasi alamat pembolehubah melalui simbolvoid swap(int& a, int& b) { int temp = a; a = b; b = temp; } Salin selepas log masuk | Ringkasan perbezaanCiri | |
---|---|---|
Kaedah penghantaran | Petikan alamat berubah-ubah | Penghantaran Alamat penuding |
Pengubahsuaian parameter | Menukar pembolehubah asal | Tidak mengubah pembolehubah asal |
Jejak memori | Saiz penunjuk |
Lepasi parameter sebenar Lulus Objek besar atau struktur kompleks
Contoh praktikal
🎜🎜Pertimbangkan fungsi yang perlu menukar dua elemen. 🎜🎜🎜Gunakan parameter rujukan: 🎜🎜void swap(int *a, int *b) { int temp = *a; *a = *b; *b = temp; }
Atas ialah kandungan terperinci Perbezaan antara parameter rujukan dan parameter penunjuk dalam fungsi C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!