Rumah >pembangunan bahagian belakang >C++ >Apakah mekanisme lulus parameter fungsi C++?

Apakah mekanisme lulus parameter fungsi C++?

王林
王林asal
2024-04-11 12:30:01579semak imbas

Mekanisme lulus parameter fungsi C++ dibahagikan kepada lulus mengikut nilai dan lulus dengan rujukan. Melewati nilai mencipta salinan nilai parameter Pengubahsuaian kepada salinan tidak menjejaskan parameter asal Digunakan untuk jenis data asas. Lulus dengan rujukan menghantar alamat parameter secara langsung, membenarkan fungsi mengubah suai parameter asal, untuk jenis kompleks.

C++ 函数参数传递机制有哪些?

Mekanisme Lulus Parameter Fungsi C++

Dalam C++, mekanisme lulus parameter menentukan cara fungsi menerima parameter yang dihantar daripada pemanggil. Terdapat dua mekanisme: pass-by-value dan pass-by-reference.

Pass by value

Pass by value mencipta salinan nilai parameter dan salinan disimpan dalam bingkai tindanan fungsi. Sebarang pengubahsuaian pada salinan tidak akan menjejaskan parameter sebenar dalam fungsi panggilan. Melepasi nilai biasanya digunakan untuk jenis data primitif (int, apungan, dll.).

Contoh kod:

void increment(int value) {
  value++; // 修改局部副本
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 5,因为 a 的值没有改变
}

Lulus melalui rujukan

Lulus melalui rujukan tidak mencipta salinan parameter, sebaliknya menghantar alamat parameter itu sendiri melalui rujukan. Ini membolehkan fungsi mengubah suai terus parameter asal dalam fungsi panggilan. Rujukan lulus biasanya digunakan untuk jenis kompleks (objek, bekas, dll.).

Contoh kod:

void increment(int& value) {
  value++; // 修改原始参数
}

int main() {
  int a = 5;
  increment(a);
  std::cout << a << std::endl; // 输出 6,因为原始参数被修改
}

Kes praktikal

Melalui contoh nilai: Kira kuasa dua parameter fungsi.

int square(int value) {
  return value * value;
}

int main() {
  int a = 5;
  int result = square(a);
  std::cout << result << std::endl; // 输出 25,因为按值传递不会影响 a
}

Lulus dengan contoh rujukan: Tukar nilai dua parameter fungsi.

rreeee

Atas ialah kandungan terperinci Apakah mekanisme lulus parameter 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