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

(壹) 自定義函數

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

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語言 函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: