Rujukan dan penunjuk dalam C++ adalah kedua-dua kaedah untuk menghantar parameter fungsi, tetapi terdapat perbezaan. Rujukan ialah alias untuk pembolehubah Mengubah suai rujukan akan mengubah suai pembolehubah asal, manakala penunjuk menyimpan alamat pembolehubah tidak akan mengubah suai pembolehubah asal. Apabila memilih untuk menggunakan rujukan atau penunjuk, anda perlu mempertimbangkan faktor seperti sama ada pembolehubah asal perlu diubah suai, sama ada nilai nol perlu diluluskan dan pertimbangan prestasi.
Dalam C++, rujukan dan penunjuk ialah dua alat berkuasa untuk menghantar parameter fungsi. Mereka menyediakan cara untuk mengubah suai pembolehubah dalam fungsi panggilan dalam fungsi.
Rujukan ialah jenis data C++ yang menyediakan alias kepada pembolehubah lain. Sebaik sahaja rujukan dibuat, sebarang pengubahsuaian kepadanya ditunjukkan dalam pembolehubah asal.
Sintaks:
Type& reference_variable = original_variable;
Contoh:
int x = 10; int& ref_x = x; ref_x++; // 等同于 x++ cout << x << endl; // 输出:11
Penunjuk ialah jenis data C++ yang menyimpan alamat pembolehubah lain. Pembolehubah primitif boleh diakses dengan menuding dereferencing.
Sintaks:
Type* pointer_variable = &original_variable;
Contoh:
int y = 10; int* ptr_y = &y; *ptr_y++; // 等同于 y++ cout << y << endl; // 输出:11
Ciri-ciri | Rujukan | Rujukan |
---|---|---|
Kaedah lulus | Nilai rujukan | Salinan alamat |
Pengubahsuaian pembolehubah asal | Ubah suai pembolehubah asal | Boleh ubah suai pembolehubah atau alamat asal |
Kos akses | Rendah (akses terus) | Tinggi (memerlukan penyahrujukan) |
Tiada ingatan | Peruntukkan dinamik memori | |
Rujukan berterusan | Tersedia | Tidak tersedia |
Meluluskan nilai nol | Tiada | OK |
Gunakan rujukan untuk melaksanakan pertukaran nilai:
void swap_by_ref(int& a, int& b) { int temp = a; a = b; b = temp; }
void swap_by_ptr(int* a, int* b) { int temp = *a; *a = *b; *b = temp; }
Atas ialah kandungan terperinci Bagaimana untuk menggunakan rujukan C++ dan lulus parameter penunjuk?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!