什麼是函式的引數?什麼是函式的返回值?它們倆的作用又是什麼呢?估計很多初學者是一頭霧水。
說得簡單一點,若是我們把函式比喻成一台機器,那麼引數就是原材料,返回值就是最終產品。函式的作用就是根據不同的引數產生不同的返回值。
◎函式的引數
在函式定義中出現的引數可以看做是乙個佔位符,它沒有資料且只能等到函式被呼叫時接收傳遞進來的資料,所以稱為形式引數,簡稱形參。函式被呼叫時給出的引數包含了實實在在的資料,會被函式內部的**使用,所以稱為實際引數,簡稱實參。形參和實參的功能是作資料傳送,發生函式呼叫時,實參的值會傳送給形參。形參和實參有以下幾個特點:
①形參變數只有在函式被呼叫時才會分配記憶體,呼叫結束後,立刻釋放記憶體,所以形參變數只有在函式內部有效,不能在函式外部使用。
②實參可以是常量、變數、表示式、函式等,無論實參是何種型別的資料,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參,所以應該提前用賦值、輸入等辦法使實參獲得確定值。
③實參和形參在數量上、型別上、順序上必須嚴格一致,否則會發生「型別不匹配」的錯誤。
#include
intsum(intn)
printf("theinnern=%d\\n",n);
returnn; }
intmain()
執行結果:
inputanumber:100↙
theinnern=5050
theouterm=100
1+2+3+...+99+100=5050
通過scanf輸入m的值,作為實參,在呼叫sum時傳送給形參n。從運**況看,輸入m值為100,即實參m的值為100,把這個值傳給函式sum時,形參n的初值也為100,在函式執行過程中,形參n的值變為5050。函式執行結束後,輸出實參m的值仍為100,可見實參的值不隨形參的變化而變化。以下是任意一函式的引數例子(圖1)(與上文**例子無關)
圖1◎函式的返回值
函式的返回值是指函式被呼叫之後,執行函式體中的程式段所取得的值,可以通過return語句返回。return語句的一般形式為:
return表示式;
或者:return(表示式);
具體例子如下:
returnmax;
returna+b;
return(100+200);
函式中可以有多個return語句,但每次呼叫只能有乙個return語句被執行,所以只有乙個返回值。一旦遇到return語句,不管後面有沒有**,函式立即執行結束,將值返回。比如:
intfunc()
從上面**例子中我們可以看到返回值始終a+b的值,也就是300。
沒有返回值的函式為空型別,我們通常用void進行說明。比如:
voidfunc()
一旦函式的返回值型別被定義為void,就不能再接收它的值了。比如,下面的語句是錯誤的:inta=func();。為了使程式有良好的可讀性並減少出錯,凡不要求返回值的函式都應定義為void型別。
C 函式引數和返回值
在呼叫函式時,大多數情況下,函式是帶引數的。主調函式和被呼叫函式之間有資料傳遞關係。前面已提到 在定義函式時函式名後面括號中的變數名稱為形式引數 formal parameter,簡稱形參 在主調函式中呼叫乙個函式時,函式名後面括號中的引數 可以是乙個表示式 稱為實際引數 actual parame...
C語言main函式引數 返回值
c語言main函式返回值 main函式的返回值,用於說明程式的退出狀態。如果返回0,則代表程式正常退出 返回其他數字的含義則由系統決定,通常,返回非零代表程式異常退出,即使程式執行結果正確也仍需修復 c語言main函式寫法 void main 是錯誤的,c c 中從來沒有定義過main。c 之父 b...
函式引數和函式返回值
思考乙個問題,如下 現在需要定義乙個函式,這個函式能夠完成2個數的加法運算,並且把結果列印出來,該怎樣設計?下面的 可以嗎?有什麼缺陷嗎?def add2num a 11 b 22 c a b print c為了讓乙個函式更通用,即想讓它計算哪兩個數的和,就讓它計算哪兩個數的和,在定義函式的時候可以...