在 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中文網其他相關文章!