Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk lulus parameter fungsi C++?

Bagaimana untuk lulus parameter fungsi C++?

王林
王林asal
2024-04-18 21:45:02540semak imbas

Dalam C++, terdapat dua cara untuk menghantar parameter: lulus mengikut nilai: mencipta salinan parameter dan fungsi mengubah suai salinan tidak menjejaskan parameter asal. Lulus dengan rujukan: Lulus rujukan parameter, dan pengubahsuaian fungsi rujukan akan menjejaskan parameter asal.

C++ 函数的参数如何传递?

Cara menghantar parameter fungsi dalam C++

Dalam C++, parameter fungsi boleh dihantar ke fungsi dalam dua cara berikut:

  • Lewati nilai
  • Lewati nilai rujukan

Melepasi nilai menghantar salinan argumen kepada fungsi, yang bermaksud bahawa sebarang perubahan yang dibuat oleh fungsi kepada salinan tidak akan menjejaskan hujah asal.

void foo(int x);

在此示例中,x 是按值传递给 foo() 函数的。

按引用传递

按引用传递会将参数的引用传递给函数,这意味着函数对引用所做的任何更改也会反映在原始参数中。

语法:

void foo(int &x);

在此示例中,x 是按引用传递给 foo() 函数的。

实战案例:

考虑以下代码:

// 按引用传递参数
void swap(int &a, int &b) {
  int temp = a;
  a = b;
  b = temp;
}

int main() {
  int x = 1;
  int y = 2;

  swap(x, y);

  std::cout << "x: " << x << std::endl; // 输出: 2
  std::cout << "y: " << y << std::endl; // 输出: 1
  return 0;
}

在这个示例中,swap() 函数按引用接收参数 ab,因此对它们的更改会影响原始变量 xySintaks:

🎜🎜void foo(int x);🎜🎜Dalam contoh ini, x dihantar mengikut nilai kepada foo() code > fungsi. 🎜🎜🎜Lulus dengan rujukan🎜🎜🎜Lulus melalui rujukan menghantar rujukan parameter kepada fungsi, yang bermaksud bahawa sebarang perubahan yang dibuat oleh fungsi kepada rujukan juga ditunjukkan dalam parameter asal. 🎜🎜🎜Sintaks: 🎜🎜🎜void foo(int &x);🎜🎜Dalam contoh ini, x dihantar dengan merujuk kepada foo() code > fungsi. 🎜🎜🎜Contoh Praktikal: 🎜🎜🎜Pertimbangkan kod berikut: 🎜rrreee🎜Dalam contoh ini, fungsi <code>swap() menerima parameter a dan b, jadi perubahan padanya mempengaruhi pembolehubah asal <code>x dan y. 🎜

Atas ialah kandungan terperinci Bagaimana untuk 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
Artikel sebelumnya:Kuasa ungkapan lambda C++Artikel seterusnya:Kuasa ungkapan lambda C++