形式引數:定義函式時函式名後括號中的變數名!
實際引數:呼叫函式時函式名後括號中的表示式!
1.形參未被呼叫時,不佔儲存單元。形參只在呼叫過程中占用儲存單元。形參定義時必須指定型別!
2.實參是常量。變數或者表示式!要與形參型別一致!而且實參要有確定的值,占用儲存單元,在呼叫過程中實參將值賦給形參!
3.c中實參對形引數據傳遞時時單向傳遞。在儲存單元中是不同的單元
在上面第三條性質中實參對形引數據傳遞時時單向傳遞,在儲存單元中是不同的單元,所以在swap函式中並不能改變a,b的值
要想在swap函式裡改變a,b值則使用指標
#include
void
swap
(int
*p,int
*q)int
main()
大家先思考一下結果會是什麼,該情況是我們在函式實參與實參使用時經常出的bug
//在主函式開始swap函式傳入a,b位址
p =&a;
//該操作使a與p變數公用一塊位址
q =&b;
//該操作使b與q變數公用一塊位址
//在swap函式裡
p = q //使p與q公用一塊位址,而p已經不與a用一塊位址了,所以p的任何改變都與a無關,而與b有關
函式的形參與實參
函式的引數分為形參 形式引數 和實參 實際引數 形參又分為,位置引數 預設引數 可變引數 關鍵字引數 形參使在定義函式的時候給出的 實參使在呼叫函式的時候給出的 1.位置引數 實參和形參的個數必須保持一致,最好按位置傳參,如果位置部隊硬就指定說明 2.預設引數 形參和實參可以不一致,如果不想使用預設...
函式 呼叫指標交換函式(形參與實參)
譚浩強老師的書,很詳細,但是個人感覺很冗餘,就比如乙個指標引用陣列就窮舉了一遍實參形參的情況,像這些東西都能用一句 指標與陣列首位址等價 推出來的。這樣冗雜的內容別說幫助學習,簡直就是把知識複雜和模糊化。本人此系列一是複習一遍之前沒學好的c語言,二是提綱挈領地捋一下知識的難點,並且只說特殊及特別的東...
函式之形參與實參
def fn a,b,c print a print b print c print x print y print z x 100y 1000z 10000 x,y z 是外界實際存在的值 呼叫函式時,實參可以有常量,變數,表示式或三種組合。在函式的外部不能直接使用函式的形參,原因 函式呼叫完畢後...