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
Lepaskan: 2024-04-20 21:21:02
asal
1093 orang telah melayarinya

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
}
Salin selepas log masuk

指针参数

指针参数通过符号 *

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
}
Salin selepas log masuk

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;
}
Salin selepas log masuk
Ciri
Kaedah penghantaranPetikan alamat berubah-ubahPenghantaran Alamat penuding
Pengubahsuaian parameterMenukar pembolehubah asalTidak mengubah pembolehubah asal
Jejak memoriSaiz 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;
}
Salin selepas log masuk
🎜🎜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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan