首頁  >  文章  >  後端開發  >  C++ 函式參數傳遞方式有哪些?

C++ 函式參數傳遞方式有哪些?

WBOY
WBOY原創
2024-04-12 09:12:011183瀏覽

在 C 中,有四種參數傳遞方式:1. 傳值(副本)2. 傳引用 3. 傳常引用 4. 傳指標。傳值和傳引用用於修改原值,常引用用於只讀訪問,而傳指標用於操作記憶體位址。

C++ 函数参数传递方式有哪些?

C 函數參數傳遞方式

#在 C 中,將資料傳遞給函數的方法有多種。根據傳遞的是值的副本還是對值的引用,參數傳遞方式被分成以下幾種:

1. 傳值(Pass by Value)

傳遞值的副本,副本的修改不會影響原值。宣告方式:

void f(int a); // 传递 a 的副本

2. 傳引用 (Pass by Reference)

傳遞值的引用,對引用的修改會影響原值。宣告方式:

void f(int& a); // 传递 a 的引用

3. 傳常引用 (Pass by Constant Reference)

與傳引用類似,但引用指向的值不能被修改。宣告方式:

void f(const int& a); // 传递 a 的常引用

4. 傳指針 (Pass by Pointer)

傳遞指向值的指針,對指標指向的值的修改會影響原值。宣告方式:

void f(int* a); // 传递 a 的指针

實戰案例:

以下是一個使用傳值和傳引用的C 函數範例:

#include <iostream>

// 传值
void swapValue(int a, int b) {
  int temp = a;
  a = b;
  b = temp;
}

// 传引用
void swapReference(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

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

  std::cout << "Before swapValue: x = " << x << ", y = " << y << std::endl;
  swapValue(x, y);
  std::cout << "After swapValue: x = " << x << ", y = " << y << std::endl;

  std::cout << "Before swapReference: x = " << x << ", y = " << y << std::endl;
  swapReference(x, y);
  std::cout << "After swapReference: x = " << x << ", y = " << y << std::endl;

  return 0;
}

輸出結果:

Before swapValue: x = 1, y = 2
After swapValue: x = 1, y = 2
Before swapReference: x = 1, y = 2
After swapReference: x = 2, y = 1

注意:

  • 傳值適用於需要建立值的副本的情況。
  • 傳引用適用於需要修改函數中值的原值的情況。
  • 傳常引用適用於需要存取值但不需要修改的情況。
  • 傳指標適用於需要直接操作值的記憶體位址的情況。

以上是C++ 函式參數傳遞方式有哪些?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn