首頁 > 後端開發 > C++ > C/C++中的參數傳遞技術

C/C++中的參數傳遞技術

WBOY
發布: 2023-08-31 13:41:06
轉載
817 人瀏覽過

C/C++中的參數傳遞技術

在 C 中,我們可以透過兩種不同的方式傳遞參數。這些是按值調用和按地址調用,在C 中,我們可以得到另一種技術。這稱為透過引用呼叫。讓我們看看它們的效果以及它們是如何運作的。

首先我們將看到按值呼叫。在這種技術中,參數被複製到函數參數中。因此,如果進行了一些修改,這將更新複製的值,而不是實際值。

範例

#include <iostream>
using namespace std;
void my_swap(int x, int y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
登入後複製

輸出

(a,b) = (10, 40)
(a,b) = (10, 40)
登入後複製

依位址呼叫的工作原理是將變數的位址傳遞到函數中。因此,當函數更新該位址指向的值時,實際值將自動更新。

範例

#include <iostream>
using namespace std;
void my_swap(int *x, int *y) {
   int temp;
   temp = *x;
   *x = *y;
   *y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(&a, &b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
登入後複製

輸出

(a,b) = (10, 40)
(a,b) = (40, 10)
登入後複製
登入後複製

與位址呼叫一樣,這裡我們使用引用呼叫。這是 C 特有的功能。我們必須傳遞參數的引用變量,因此為了更新它,實際值將被更新。僅在函數定義時,我們必須將 & 放在變數名稱之前。

範例

#include <iostream>
using namespace std;
void my_swap(int &x, int &y) {
   int temp;
   temp = x;
   x = y;
   y = temp;
}
int main() {
   int a, b;
   a = 10;
   b = 40;
   cout << "(a,b) = (" << a << ", " << b << ")\n";
   my_swap(a, b);
   cout << "(a,b) = (" << a << ", " << b << ")\n";
}
登入後複製

輸出

(a,b) = (10, 40)
(a,b) = (40, 10)
登入後複製
登入後複製

以上是C/C++中的參數傳遞技術的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板