C語言入門之函式的引數和返回值

2021-08-03 13:25:38 字數 1502 閱讀 4384

什麼是函式的引數?什麼是函式的返回值?它們倆的作用又是什麼呢?估計很多初學者是一頭霧水。

說得簡單一點,若是我們把函式比喻成一台機器,那麼引數就是原材料,返回值就是最終產品。函式的作用就是根據不同的引數產生不同的返回值。

◎函式的引數

在函式定義中出現的引數可以看做是乙個佔位符,它沒有資料且只能等到函式被呼叫時接收傳遞進來的資料,所以稱為形式引數,簡稱形參。函式被呼叫時給出的引數包含了實實在在的資料,會被函式內部的**使用,所以稱為實際引數,簡稱實參。形參和實參的功能是作資料傳送,發生函式呼叫時,實參的值會傳送給形參。形參和實參有以下幾個特點:

①形參變數只有在函式被呼叫時才會分配記憶體,呼叫結束後,立刻釋放記憶體,所以形參變數只有在函式內部有效,不能在函式外部使用。

②實參可以是常量、變數、表示式、函式等,無論實參是何種型別的資料,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參,所以應該提前用賦值、輸入等辦法使實參獲得確定值。

③實參和形參在數量上、型別上、順序上必須嚴格一致,否則會發生「型別不匹配」的錯誤。

#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為了讓乙個函式更通用,即想讓它計算哪兩個數的和,就讓它計算哪兩個數的和,在定義函式的時候可以...