close
傳值傳址這通常會分不太清楚,不過效果差異很大
像以下的範例
int main() { int aNUM=10; valueFun(aNUM); cout<< aNUM<<"\n"; addFun(aNUM); cout<< aNUM<<"\n"; } void valueFun(int num) { num=20; } void addFun(int &num) { num=30;
前面的傳值部份他只是把數值傳過去,在function裡面更改數值之後
並沒有把實際的值改變,因此在下一行裡面印出的值就會是原本的10
接下來的傳址部份,它傳遞的方式是直接傳輸記憶體位址
所以在裡面更改的值會直接的寫入記憶體位址相對應的值
ps.在這裡順便解釋一下指標好了
*a這代表一個指標,通常來說我會把他當成是一個箭頭
指向某一個地方,用法通常是指向一個矩陣的頭或是一個位址
相對的,如果我們想知道某個變數或是某個值的位址
作法是加上一個&
EX:&a 這個意思就是a這個變數的記憶體位址
全站熱搜
留言列表