#include
void change(int *p)
int main()
執行結果:
0x7fffdb8192a4
0x7fffdb8192a4
0x7fffdb81928c 5
0x7fffdb8192a4
可以看出,實參跟形參是兩個不同的指標,只不過進入函式時,實參跟形參都指向main函式中的val位址,
當改變形參指向的變數的值時,*p = val; main函式中的val被改變;
但是改變形參的指向位址時,p = &val; 只是改變了形參的指向,並沒有改變實參的指向;
當加上const之後:
void change(const int *p)
執行結果:
0x7fff85402a94
0x7fff85402a7c 4
0x7fff85402a94
可以看出加上const之後,不能改變形參所指向的變數的值,但是可以改變形參的指向;
其實加上const就是說實參所指向的變數的值是唯讀的,形參不能改變;
函式引數 形參和實參的區別
實參 argument 全稱為 實際引數 是在呼叫時傳遞給函式的引數.實參可以是常量 變數 表示式 函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須具有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使實參獲得確定值。形參 parameter 全稱為 形式引數 由於它不是實...
函式 呼叫指標交換函式(形參與實參)
譚浩強老師的書,很詳細,但是個人感覺很冗餘,就比如乙個指標引用陣列就窮舉了一遍實參形參的情況,像這些東西都能用一句 指標與陣列首位址等價 推出來的。這樣冗雜的內容別說幫助學習,簡直就是把知識複雜和模糊化。本人此系列一是複習一遍之前沒學好的c語言,二是提綱挈領地捋一下知識的難點,並且只說特殊及特別的東...
父類為形參,子類為實參時的注意事項
include using namespace std class fish class carp public fish void showinf fish fish 直接進行普通的值傳遞 int main 當函式引數是父類物件且傳入的引數是子類物件,然而我們用的是普通值傳遞時,子類物件僅僅將自己...