Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menghantar parameter fungsi dalam C++

Bagaimana untuk menghantar parameter fungsi dalam C++

王林
王林asal
2024-04-13 17:33:01843semak imbas

Terdapat tiga cara untuk menghantar parameter fungsi dalam C++: menghantar salinan mengikut nilai, menghantar rujukan melalui rujukan dan menghantar penunjuk dengan penuding. Melepasi nilai tidak menjejaskan parameter sebenar, lulus melalui rujukan dan penunjuk lakukan.

C++ 函数参数的传递方式

Cara menghantar parameter fungsi dalam C++

Dalam C++, parameter fungsi boleh dihantar melalui rujukan, penunjuk atau nilai. Berikut ialah pengenalan dan contoh praktikal bagi setiap kaedah lulus:

Nilai demi nilai

Lulus salinan hujah fungsi. Sebarang pengubahsuaian pada salinan tidak akan menjejaskan parameter sebenar yang diluluskan.

void swap(int x, int y) {
  int temp = x;
  x = y;
  y = temp;
}

int main() {
  int a = 10, b = 20;
  std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
  swap(a, b);  // a 和 b 的副本被传给 swap
  std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
  return 0;
}

Output:

Before swap: a = 10, b = 20
After swap: a = 10, b = 20

Lulus-rujukan

Luluskan rujukan kepada hujah fungsi. Sebarang pengubahsuaian kepada rujukan akan menjejaskan parameter sebenar yang diluluskan.

void swap(int &x, int &y) {
  int temp = x;
  x = y;
  y = temp;
}

int main() {
  int a = 10, b = 20;
  std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
  swap(a, b);  // a 和 b 的引用被传给 swap
  std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
  return 0;
}

Output:

Before swap: a = 10, b = 20
After swap: a = 20, b = 10

laluan demi-penunjuk

lulus penuding parameter fungsi. Sebarang pengubahsuaian pada memori yang ditunjukkan oleh penunjuk akan menjejaskan parameter sebenar yang diluluskan.

void swap(int *x, int *y) {
  int temp = *x;
  *x = *y;
  *y = temp;
}

int main() {
  int a = 10, b = 20;
  std::cout << "Before swap: a = " << a << ", b = " << b << std::endl;
  swap(&a, &b);  // a 和 b 的指针被传给 swap
  std::cout << "After swap: a = " << a << ", b = " << b << std::endl;
  return 0;
}

Output:

Before swap: a = 10, b = 20
After swap: a = 20, b = 10

Atas ialah kandungan terperinci Bagaimana untuk menghantar parameter fungsi dalam 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