位置:首頁 > 高級語言 > C++教學 > C++函數按指針調用

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