首頁 > 後端開發 > C++ > 主體

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

王林
發布: 2024-04-11 12:30:01
原創
542 人瀏覽過

C 函數參數傳遞機制分為以值傳遞和按參考傳遞。按值傳遞建立參數值副本,對副本的修改不影響原始參數,用於基本資料類型。按引用傳遞直接傳遞參數位址,允許函數修改原始參數,用於複雜類型。

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

C 函數參數傳遞機制

#在C 中,參數傳遞機制決定了函數如何接收從呼叫者傳遞的參數。有值傳遞和引用傳遞兩種機制。

按值傳遞

按值傳遞會建立參數值的副本,副本儲存在函數的堆疊訊框中。對副本的任何修改都不會影響呼叫函數中實際的參數。按值傳遞通常用於基本資料類型(int、float 等)。

程式碼範例:

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

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

按引用傳遞

按引用傳遞不會建立參數的副本,而是透過引用傳遞參數本身的位址。這允許函數直接修改呼叫函數中的原始參數。按引用傳遞通常用於複雜類型(物件、容器等)。

程式碼範例:

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

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

實戰案例

以值傳遞範例:計算函數參數的平方。

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

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

按引用傳遞範例:交換兩個函數參數的值。

void swap(int& a, int& b) {
  int temp = a;
  a = b;
  b = temp;
}

int main() {
  int a = 5;
  int b = 10;
  swap(a, b);
  std::cout << "a = " << a << ", b = " << b << std::endl; // 输出 a = 10, b = 5,因为按引用传递修改了原始参数
}
登入後複製

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

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!