2012年11月5日

C++ Call by Reference 簡單範例

#include <iostream>
using namespace std;

int Add(int &x,int &y);

void NumberChange(int &x,int &y);

int main()
{
        int a=0;
        int b=0;
        a=10;
        b=40;
        cout<<"a="<<a<<endl;
        cout<<"b="<<b<<endl;
        cout<<"10+40= "<<Add(a,b)<<endl;
        NumberChange(a,b);
        cout<<"改變後 a="<<a<<endl;
        cout<<"改變後 b="<<b<<endl;
        system("Pause");
}

int Add(int &x,int &y)
{
        return x+y;
}

void NumberChange(int &x,int &y)
{
        x=10;
        y=20;
}

一開始宣告 a=10 b=40, 載入Add(int &x,int &y)後 因為 函式內已經宣告為位址的形式,所以在使用上

該變數會直接參考至a b 的 記憶體位址,最後 不對 a b 做改變回傳 a+b, 接著載入 


NumberChange(int &x,int &y) 函式 , 而因為變數是直接參考a b 之記憶體位址,所以改變 x y 等於是改變 a b ,


所以可以看出 最後 a b 被改變為 a=10 b=20.








沒有留言:

張貼留言