回覆列表
-
1 # 使用者6769011209644
-
2 # 使用者8201481786170
#include
using namespace std;
//傳值呼叫
void chuanzhi(int a,int b)
{
int t=a;
a=b;
b=t;
cout
cout
}
//指標傳遞
void zhizhen(int *a,int *b)
{
int t=*a;
*a=*b;
*b=t;
cout
cout
}
//引用呼叫
void yinyong(int &a,int &b)
{
int t=a;
a=b;
b=t;
cout
cout
}
int main()
{
int x=2,y=4;
cout
chuanzhi(x,y);
cout
x=2,y=4;
cout
zhizhen(&x,&y);
cout
x=2,y=4;
cout
yinyong(x,y);
cout
return 0;
}
寫的有點多 執行完就 9 行
放在c++ 編譯器裡 執行下看看 就知道了
交換函數里面是肯定交換了,
而只有 指標傳遞和引用傳遞 才會對原來的變數值產生影響;
傳值和傳引用的區別。這裡把addtoend裡else後面的部分先略掉,假設函式是這樣,直接傳結構體指標
你呼叫的時候是這樣寫的實際的AddToEnd函數里面是這樣執行的所以呢,函數里的head是一個臨時變數,對head的修改並不會修改到函式外面你真正想要修改的header指標。這是傳值的寫法,那麼如果想改外面的header呢,要傳引用。下面這樣寫,接著上面同意的呼叫方法,實際的執行是這樣的:這樣,就可以起到修改外面的header指標的作用了。一個指標也是一個變數,也是遵循傳值和傳引用的規則的。