形參:全稱為"形式參數"是在定義函數名和函數體的時候使用的參數,目的是用來接收調用該函數時傳送的參數.
實參:全稱為"實際參數"是在調用時傳遞個該函數的參數.
形參和實參的類型必須要一致,或者要符合隱含轉換規則,
當形參和實參不是指針類型時,在該函數運行時,形參和實
參是不同的變量,他們在內存中位於不同的位置,形參將實
參的內容復制一份,在該函數運行結束的時候形參被釋放,
而實參內容不會改變.
而如果函數的參數是指針類型變量,在調用該函數的過程
中,傳個函數的是實參的地址,在函數體內部使用的也是
實參的地址,即使用的就是實參本身.所以在函數體內部
可以改變實參的值.
寫一個交換a,b值的函數。
按值(C++):
函數聲明: swap(x,y){.....}
函數調用: int a=5;int b=6;
swap(a,b)
注:把a和b的值分別傳給x,y。其實a,b本身的值並沒有改變,a,b並沒有交換成功,要交換兩個數的值不能使用按值傳遞。
cout<<a; //a=5
cout<<a; //b=6
引用(C++):
函數聲明: swap(&x,&y){.....}
函數調用: int a=5;int b=6;
swap(a,b)
注:把a和b的值分別傳給x,y。其實a,b本身的值並沒有改變。
cout<<a; //a=6
cout<<a; //b=5
指針(C++):
函數聲明: swap(*x,*y){.....}
函數調用: int *a=5;int *b=6;
swap(a,b)
注:把a和b的值分別傳給x,y。其實a,b本身的值並沒有改變。
cout<<a; //a=6
cout<<a; //b=5
作者“ERDP技術架構”