C++函數按指針調用
通過傳遞函數參數拷貝參數的地址到形式參數的指針方法的調用。函數的內部的地址是用來訪問調用中使用的實際參數。這意味著,對參數的更改會影響傳遞的參數。
傳遞指針的值,參數指針傳遞給函數就像任何其他的值。所以,相應的需要聲明函數的參數為指針類型,如在以下函數swap(),從而改變了兩個整型變量的值指向它的參數。
// function definition to swap the values. void swap(int *x, int *y) { int temp; temp = *x; /* save the value at address x */ *x = *y; /* put y into x */ *y = temp; /* put x into y */ return; }
要了解更詳細的關於C++指針,請檢查C++指針的篇章。
現在,讓我們調用函數swap()通過指針,如下麵的例子傳遞值:
#include <iostream> using namespace std; // function declaration void swap(int *x, int *y); int main () { // local variable declaration: int a = 100; int b = 200; cout << "Before swap, value of a :" << a << endl; cout << "Before swap, value of b :" << b << endl; /* calling a function to swap the values. * &a indicates yiibaier to a ie. address of variable a and * &b indicates yiibaier to b ie. address of variable b. */ swap(&a, &b); cout << "After swap, value of a :" << a << endl; cout << "After swap, value of b :" << b << endl; return 0; }
當上述代碼放在同一個文件中,編譯和執行時,它產生了以下結果:
Before swap, value of a :100 Before swap, value of b :200 After swap, value of a :200 After swap, value of b :100