#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.

沒有留言:
張貼留言