Rumah > pembangunan bahagian belakang > C++ > Penunjuk dan parameter rujukan dalam pengisytiharan fungsi: membedah penggunaan dan semantiknya

Penunjuk dan parameter rujukan dalam pengisytiharan fungsi: membedah penggunaan dan semantiknya

WBOY
Lepaskan: 2024-05-02 17:12:02
asal
477 orang telah melayarinya

Parameter penunjuk membenarkan fungsi mengakses dan mengubah suai data asal, manakala parameter rujukan mesti terikat kepada pembolehubah yang sah dan perubahan pada rujukan juga ditunjukkan pada nilai asal.

Penunjuk dan parameter rujukan dalam pengisytiharan fungsi: membedah penggunaan dan semantiknya

Parameter penunjuk dan rujukan dalam pengisytiharan fungsi: pemahaman yang mendalam tentang penggunaan dan semantiknya

Parameter penuding

Parameter penuding membenarkan fungsi mengakses dan mengubah suai data mentah pemanggil. Parameter penuding biasanya diisytiharkan sebagai penunjuk kepada jenis sasaran T seperti berikut:

void modify_value(int* num);
Salin selepas log masuk

Pengisytiharan fungsi ini menunjukkan bahawa fungsi modify_value mengambil penunjuk kepada integer sebagai argumen. Integer boleh diakses kepada hujah yang dihantar kepada fungsi ini dan sebarang perubahan pada nilai pointed-to ditunjukkan dalam nilai asal pemanggil. modify_value 函数采用指向整型的指针作为参数。传递给此函数的实参可以访问该整数,并且任何对该指向值的更改都会反映在调用者的原始值上。

实战案例:

int main() {
  int num = 10;
  modify_value(&num); // 传递 num 的地址
  cout << num << endl;  // 输出 20,因为原始值已修改
  return 0;
}

void modify_value(int* num) {
  *num = *num * 2; // 修改指向的值
}
Salin selepas log masuk

引用参数

引用参数也是对目标类型的引用,但它们从概念上是不同的。引用参数在声明中表示为对目标类型的引用(&),如下所示:

void modify_value(int& num);
Salin selepas log masuk

modify_value

Kes praktikal:

int main() {
  int num = 10;
  modify_value(num); // 传递 num 的引用
  cout << num << endl;  // 输出 20,因为原始值已修改
  return 0;
}

void modify_value(int& num) {
  num = num * 2; // 修改引用变量
}
Salin selepas log masuk
Parameter rujukanParameter rujukan juga merujuk kepada jenis sasaran, tetapi ia berbeza dari segi konsep. Parameter rujukan diwakili dalam pengisytiharan sebagai rujukan (&) kepada jenis sasaran, seperti ditunjukkan di bawah:

rrreee

modify_value Fungsi mengambil rujukan kepada integer sebagai parameter. Argumen sebenar yang dihantar kepada fungsi ini mestilah pembolehubah integer yang sah dan sebarang perubahan pada pembolehubah rujukan ditunjukkan dalam pembolehubah asal pemanggil.

Adalah penting untuk ambil perhatian bahawa parameter rujukan tidak boleh diikat semula kepada pembolehubah yang berbeza, yang bermaksud bahawa nilai yang dihantar kepada parameter rujukan mestilah untuk sepanjang hayat fungsi.
  • Kes praktikal:
  • rrreee
  • Perbezaan antara penunjuk dan rujukanWalaupun kedua-dua penunjuk dan rujukan boleh mengakses dan mengubah suai data mentah pemanggil, terdapat beberapa perbezaan utama antara mereka:
tuding ke mana-mana lokasi memori yang sah, manakala rujukan mesti terikat kepada pembolehubah yang sah.

Boleh diikat semula:

Penunjuk boleh diikat semula ke lokasi memori yang berbeza, manakala rujukan tidak boleh. 🎜🎜🎜Overhed: 🎜Biasanya penunjuk menggunakan lebih banyak overhed daripada rujukan kerana mereka perlu menyimpan alamat yang menghala ke lokasi sasaran. 🎜🎜🎜Kesimpulan🎜🎜Penunjuk dan parameter rujukan ialah mekanisme yang berguna dalam C++ untuk menghantar dan mengubah suai data antara fungsi. Memahami penggunaan dan semantiknya adalah penting untuk menulis kod dengan berkesan. 🎜

Atas ialah kandungan terperinci Penunjuk dan parameter rujukan dalam pengisytiharan fungsi: membedah penggunaan dan semantiknya. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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