首頁 > 軟體

C語言修煉之路一朝函數思習得 模組思維世間生下篇

2022-03-03 16:00:23

(壹) 自定義函數

自定義函數和庫函數一樣,有函數名,返回值型別和函數引數。 但是不一樣的是這些都是我們自己來設計。這給程式設計師一個很大的發揮空間。

1.1  函數的組成

1.2  自定義函數使用

①寫一個函數可以找出兩個整數中的最大值。

 ②寫一個函數可以交換兩個整形變數的內容。

錯誤案例 (下文有詳細解析)

簡單來說:實參a和b,傳給形參x,y的時候,形參是實參的一份臨時拷貝

改變形參x,y並不會影響實參a,b

正確案例

(貳) 函數的引數

2.1  實際引數(實參):

真實傳給函數的引數,叫實參。實參可以是:常數、變數、表示式、函數等。無論實參是何種型別的量,在進行函數呼叫時,它們都必須有確定的值,以便把這些值傳送給形參。

2.2  形式引數(形參):

形式引數是指函數名後括號中的變數,因為形式引數只有在函數被呼叫的過程中才範例化(分配記憶體單元),所以叫形式引數。形式引數當函數呼叫完成之後就自動銷燬了。因此形式引數只在函數中有效。

上面Swap1和Swap2函數中的引數x,y,px,py都是形式引數。在main函數中傳給Swap1的num1,num2和傳給Swap2函數的&num1,&num2是實際引數。

這裡我們對函數的實參和形參進行分析: 

 這裡可以看到Swap1函數在呼叫的時候,x,y擁有自己的空間,同時擁有了和實參一模一樣的內容。所以我們可以簡單的認為:形參範例化之後其實相當於實參的一份臨時拷貝。

(叄)函數的呼叫

3.1  傳值呼叫

函數的形參和實參分別佔有不同記憶體塊,對形參的修改不會影響實參。

3.2  傳址呼叫

傳址呼叫是把函數外部建立變數的記憶體地址傳遞給函數引數的一種呼叫函數的方式。這種傳參方式可以讓函數和函數外邊的變數建立起正真的聯絡,也就是函數內部可以直接操作函數外部的變數。

(肆)函數的巢狀呼叫和鏈式存取

函數和函數之間可以有機的組合的。

4.1  巢狀呼叫

 函數可以巢狀呼叫,但不能巢狀定義

4.2  鏈式存取

把一個函數的返回值作為另外一個函數的引數。

(五)函數的宣告和定義

5.1  函數宣告

  • 告訴編譯器有一個函數叫什麼,引數是什麼,返回型別是什麼。但是具體是不是存在,無關緊要。
  • 函數的宣告一般出現在函數的使用之前。要滿足先宣告後使用。
  • 函數的宣告一般要放在標頭檔案中的。

5.2  函數定義

函數的定義是指函數的具體實現,交待函數的功能實現。

到此這篇關於C語言修煉之路一朝函數思習得 模組思維世間生下篇的文章就介紹到這了,更多相關C語言 函數內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com