首頁 > 歷史

從零開始學習C語言丨函式的定義、呼叫和引數

作者:由 玹三 發表于 歷史日期:2022-12-10

c語言如何開根號求過程

國慶迴歸的第一篇文章,《從零開始學C語言》系列的第十篇。

在前面的文章中,我們其實有見過函式,就是C語言程式有且僅有一個的主函式 main()。

因此,可以說C語言程式中至少都會有一個函式。

那麼,接下來就來學習一下C語言中函式的知識點。

從零開始學習C語言丨函式的定義、呼叫和引數

什麼是函式

函式,也被稱為方法,是一組一起執行一個任務的語句。

打一個比喻:

做菜是需要洗菜、切菜、炒菜、然後把菜盛出來端上桌。

如果沒有函式,程式碼上我們每次就都要把這些步驟一個一個地寫清楚,做一道菜寫一堆這樣的步驟。

但是有了函式就不一樣了。我把這些步驟都整合在一起,把它變成一個函式,等我需要做菜的時候,就只需要把這個函式拿出來用。誒,這就比每次都要寫一大堆東西輕鬆得多,就非常方便!

C語言中函式的定義方式:

從零開始學習C語言丨函式的定義、呼叫和引數

1、type:函式返回的型別,如 int、float、char等等,這類有明確返回型別的函式,結果都必須有 return 關鍵字返回相應型別的資料。如果函式不返回型別,則可以使用 void 空型別來定義函式。

2、function:函式的名稱。名稱必須符合識別符號的規則,同時建議函式名稱可以按照駝峰式寫法(大駝峰:YouHaveMoney 或者小駝峰:tomorrowIsBetter)。

3、parameter:函式的引數列表,可以有,可以沒有,實際情況根據函式的主體內容進行決定。相當於一個佔位符。

4、body:函式的主體部分。即把所有做菜的步驟都包括在這裡面,當呼叫函式的時候,就會順序執行這裡面的內容。

函式的呼叫

函式編寫之後,想進行實際應用,那就需要呼叫。如果不呼叫,函式寫了跟沒寫一樣。他就在那裡,你不呼喚他,他是沒有迴應的。

C語言中的函式是透過

函式名();

來進行呼叫的。

從零開始學習C語言丨函式的定義、呼叫和引數

執行結果:Hello World

那麼有人就要說,程式是按順序執行的,那我直接把 HelloWorld 這個函式直接寫在主函數里面,那麼它執行的時候不也是按順序執行,是不是就不用呼叫了。

不可不可,萬萬不可!

在C語言當中,迴圈是可以巢狀的、判斷也是可以巢狀的,但是函式是不能巢狀定義的。函式的定義只能在函式體之外進行定義,無法在函式體內定義新的函式。

不過可以巢狀使用,在一個函數里面呼叫另外一個函式,就可以實現函式的巢狀使用。

例如:

從零開始學習C語言丨函式的定義、呼叫和引數

執行結果:

讀者都是英俊瀟灑!美若天仙!

求個點贊、收藏和分享,可好?

函式的呼叫還有一種方式,叫作遞迴呼叫,俗一點講就是我自己用自己。這一個遞迴稍微講起來有點複雜,就暫且不在這裡作詳細展開,後面涉及到遞迴的時候再說說。

引數

前文提到,引數的在函式中相當於是一個佔位符的作用。

就比如數學中的函式,x + y = 10。

x 和 y 就是函式中的引數,它實際是什麼值我不知道,但我知道它們兩個相加是等於10。那麼 x 和 y 的實際值可以有無限種可能,x 和 y 在這裡就是佔個位置,表示一個虛的數值。

就例如,我們要計算兩個值相加的值,但是不知道使用者實際應用要輸入什麼值。那這裡就可以使用引數來佔個位置。

從零開始學習C語言丨函式的定義、呼叫和引數

在程式中,引數是有兩種分類的:形式引數和實際引數。

形式引數,顧名思義,就是形式上的,做個樣子,沒有實際X用。

一般,函式定義時候的引數,就叫做形式引數。它們沒有實際的值,只是擺個樣子,在這裡佔個位置。

實際引數,則是相反的,它是實在的,有內容的。

一般是在函式呼叫的時候,傳遞給函式的值就叫做實際引數。

從零開始學習C語言丨函式的定義、呼叫和引數

就還是上面這個加法的例子。

在這裡面,add 函式定義時,變數 a 和 b 就是形式引數。

在主函式中呼叫 add 函式時,傳入的變數 x 和 y 就是實際引數。

最後

本來想著國慶節回到家裡能靜下心多輸出一點內容,但人算不如天算,誰知道回到家反而腳不沾地,忙得很。即便腳沾地了,人也是沾在床上爬不起來,腦子亂哄哄的,根本靜不下來。

接下來回歸了正常的生活,儘可能保證每天都有內容輸出。

最後,各位靚仔靚妹,多多支援一下唄!如果文章有什麼不當之處,或者有什麼問題,歡迎大家在討論區進行留言。