如何在C語言中實現模塊化?

C語言是結構化語言。

C語言通過函數來實現其模塊化功能的。

函數就是功能。每一個函數用來實現一個特定的功能。函數的名字反映其代表的功能。

模塊化程序設計的思路:在設計一個較大的程序時,往往把它分成若干個程序模塊,每一個模塊包括一個或多個函數,每一個函數實現一個特定的功能。一個C程序可由若干個其他函數構成。由主函數調用其他函數,其他函數也可相互調用。同一個函數可以被一個或多個函數任意調用多次。

函數的調用很重要。

如何在C語言中實現模塊化

工具/原料

計算機一臺

Visual C++ 6.0編程環境

方法/步驟

函數的定義:

函數必須“先定義,後使用”。

定義函數包括:

指定函數的名字;

指定函數的類型;

指定函數參數的名字和類型;

指定函數的功能,函數是做什麼的,應當完成什麼操作。

定義函數的方法:

函數有無參函數,有參函數和空函數。

定義無參函數:

類型名 函數名() 或 類型名 函數名(void)

{ {

函數體 函數體

} }

定義有參函數:

類型名 函數名(形式參數列表)

{

函數體

}

定義空函數:

類型名 函數名()

{}

函數體是空的。調用此函數時,什麼工作也不做,沒有任何實際作用。作用是佔位置。

如何在C語言中實現模塊化

如何在C語言中實現模塊化

函數的調用:(很重要)

定義函數的目的是為了調用函數,以得到預期的結果。

函數調用的一般形式:

函數名(實參表列)

如果是調用無參函數,則“實參表列”可以沒有,但括號不能省略。如果實參表列包含多個實參,則各參數間用逗號隔開。

函數有3中調用形式:

函數調用語句,把函數調用單獨作為一個語句,這時不要求函數帶回值,只要求完成一定的操作。

函數表達式,函數調用出現在另一個表達式中,是賦值表達式的一部分。要求函數帶回一個確定的值以參加表達式的運算。

函數參數,函數調用作為另一個函數調用時的實參。

如何在C語言中實現模塊化

如何在C語言中實現模塊化

函數調用時的數據傳遞:

在調用有參函數時,主調函數與被調用函數之間有數據傳遞關係。

形式參數簡稱形參:定義函數時函數名後面括號中的變量名。

實際參數簡稱實參:在主調函數中調用函數時,函數名後面括號中的參數。

【注】:在調用函數過程中,系統會把實參的值傳遞給被調用函數的形參。或者說,形參從實參得到一個值,進行運算。

形參和實參間的數據傳遞這叫【虛實結合】。

函數調用的過程:

在定義函數中指定實參,在未出現函數調用時,形參不佔內存中的存儲單元。在調用時,函數中的形參才被臨時分配內存單元,不是分配臨時單元。

將實參的值傳給形參。

利用形參進行相關運算。

通過return語句把函數值帶回到主調函數。【注】返回值類型與主函數中調用函數的類型一致,如果不一致,按主函數中的調用函數的類型一致。

調用結束,形參單元被釋放。【注】實參單元保留並維持原值。如果執行一個被調函數時,形參的值會發生變化,不會改變主調函數實參的值。

【注】:實參向形參的數據傳遞是值傳遞,單向傳遞。

如何在C語言中實現模塊化

如何在C語言中實現模塊化

函數的嵌套調用:

C語言中,函數的定義時互相平行、獨立的,即在一個函數內不能再定義另一個函數,不能嵌套定義但可以嵌套調用。在一個函數中可以嵌套調用另一個函數。

如何在C語言中實現模塊化

如何在C語言中實現模塊化

如何在C語言中實現模塊化

函數的遞歸調用:

在調用一個函數的過程中又出現直接或間接的調用該函數本身,稱為函數的遞歸調用。這是C語言的一個特點。

問題:有5個學術坐在一起,問第五個學生多少歲?

他說比第四個學生大2歲。第四個學生比第三個學生大五歲,第三個學生比第二個學生大2歲,第二個學生比第一個學生大2歲。第一個學生10歲。

如何在C語言中實現模塊化

如何在C語言中實現模塊化

如何在C語言中實現模塊化

綜合舉例:

用遞歸方法求n!

如圖所示:

如何在C語言中實現模塊化

如何在C語言中實現模塊化

如何在C語言中實現模塊化

注意事項

【注】:實參向形參的數據傳遞是值傳遞,單向傳遞。

【注】返回值類型與主函數中調用函數的類型一致,如果不一致,按主函數中的調用函數的類型一致。

相關問題答案