譚浩強老師的書,很詳細,但是個人感覺很冗餘,就比如乙個指標引用陣列就窮舉了一遍實參形參的情況,像這些東西都能用一句「指標與陣列首位址等價」推出來的。這樣冗雜的內容別說幫助學習,簡直就是把知識複雜和模糊化。
本人此系列一是複習一遍之前沒學好的c語言,二是提綱挈領地捋一下知識的難點,並且只說特殊及特別的東西,就是如果與之前知識不矛盾或者說可以推出來的就不提了。
下面就用乙個例子來展示下如何不用全域性變數改變函式外的多個值(除了全域性變數就是指標了。函式返回值又只能返回1個或0個值)
例子引自,譚浩強《c程式設計》第四版 p226~p229例子
#include void main()
/*【因為形參生命週期是函式內,用完就銷毀,所以swap1交換指標無用,
swap2交換所存值而銷毀的是形參指標而不會銷毀變數值故而有效】*/
void swap1(int *p01, int *p02)//函式內是交換指標位址
void swap2(int *p01, int *p02)//函式內是交換指標位址所存之值
書中總是提及函式的「虛實結合」,實參形參形象來講是什麼
看看我用visio畫的圖吧~
上面**有一句注釋我要多說一句:
因為形參生命週期是函式內,用完就銷毀,所以swap1交換指標無用,
swap2交換所存值而銷毀的是形參指標而不會銷毀變數值故而有效
(swap1)是為了展示函式的「虛實結合」和「值傳遞」的特點,1中就因為
改的是形參指標(生命週期僅僅在函式裡)改完就因函式被用完而被銷毀
,而無法改變外面的值。
(swap2)是為了展示指標改函式外面的值,2中就是形參指標實實在在改的是swap1函式外的位址裡的值而形參指標被銷毀後沒人再管剛改的那些值。
函式的形參與實參
函式的引數分為形參 形式引數 和實參 實際引數 形參又分為,位置引數 預設引數 可變引數 關鍵字引數 形參使在定義函式的時候給出的 實參使在呼叫函式的時候給出的 1.位置引數 實參和形參的個數必須保持一致,最好按位置傳參,如果位置部隊硬就指定說明 2.預設引數 形參和實參可以不一致,如果不想使用預設...
函式之形參與實參
def fn a,b,c print a print b print c print x print y print z x 100y 1000z 10000 x,y z 是外界實際存在的值 呼叫函式時,實參可以有常量,變數,表示式或三種組合。在函式的外部不能直接使用函式的形參,原因 函式呼叫完畢後...
javascript函式的形參與實參
形參,是在定義函式時使用的引數,目的是用來接收呼叫該函式時傳進來的實際引數。實參 是在呼叫時傳遞給函式的引數 例如function myfun a,b,c myfun 1,2,3 這裡a,b,c就是形參。1,2,3為實參。形參和實參是不同的變數,他們在記憶體中處於不同的位置,形參在函式執行結束時將被...