Rumah >pembangunan bahagian belakang >C++ >Perbezaan antara parameter rujukan dan parameter penunjuk dalam fungsi C++

Perbezaan antara parameter rujukan dan parameter penunjuk dalam fungsi C++

WBOY
WBOYasal
2024-04-20 21:21:021094semak imbas

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.

C++ 函数中引用参数和指针参数的区别

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 simbol *. Ia pada asasnya menghantar penunjuk ke alamat memori pembolehubah, yang bermaksud bahawa sebarang perubahan yang dibuat pada parameter penunjuk tidak ditunjukkan dalam pembolehubah asal. Contoh kod: Ringkasan perbezaanParameter rujukanSaiz rujukan
void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}
Ciri
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;
}
🎜🎜Gunakan parameter penunjuk: 🎜🎜rrreee🎜Kaedah mana yang lebih baik bergantung pada situasi khusus yang terlibat. Jika dua nilai mudah perlu ditukar, parameter rujukan adalah lebih sesuai. Walau bagaimanapun, jika anda perlu menukar objek besar atau struktur kompleks, parameter penunjuk lebih sesuai kerana ia mengelakkan menyalin sebahagian besar data di dalam dan di luar fungsi. 🎜

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn