首先來了解一下概念;
1.函式的定義:函式的定義就是對函式所要完的操作進行描述,即編寫一段程式,使該段程式完成函式所指定的操作。一般函式需要先定義後使用。沒有定義的函式不能使用。
-除主函式外的函式不能單獨執行,這些函式可以被主函式或其他函式呼叫,也可以條用其他函式,但不能呼叫主函式。
2.函式的呼叫:程式中使用已經定義好的函式,成為函式呼叫。定義函式的目的是為了使用這個函式,因此要學會正確使用這個函式。如果函式a呼叫函式b,則稱函式a為主調函式,函式b為被調函式。
函式引數:函式呼叫作為乙個函式的實參。
例如:z=max(max(a,b),c);
其中max(a,b)是一次函式呼叫,它的值作為max另一次呼叫的實參。z的值時a,b,c三者中的最大者。
1、形參變數只有在被呼叫時才分配記憶體單元,在呼叫結束時,即刻釋放所分配的記憶體單元。因此,形參只在函式內部有效。函式呼叫結束返回主呼叫函式後則不能再使用該形參變數。
2、實參可以是常量、變數、表示式、函式等,無論實參是何種型別的量,在進行函式呼叫時,它們都必須有確定的值,以便把這些值傳送給形參。因此應預先用賦值,輸入等辦法使引數獲得確定值。
3、實參和形參在數量上,型別上、順序上應嚴格一致,否則就會發生型別不匹配的錯誤。
4、在一般傳值呼叫的機制中只能把實參傳送給形參,而不能把形參的值反向地傳送給實參。因此在函式呼叫過程中,形參值發生改變,而實參中的值不會變化。而在引用呼叫的機制當中是將實參引用的位址傳遞給了形參,所以任何發生在形參上的改變實際上也發生在實參變數上。
*/下面再來看一下具體的例項;
a.定義無參函式
#include void main()void print_message() //定義print_message函式
b.定義有參函式
#include int main()int bigger(int m,int n) //定義bigger函式
函式呼叫中:所有函式都是平行的,即在定義函式時是分別進行的,是互相獨立的。乙個函式並不從屬於另一函式,即函式不能巢狀定義。函式間可以互相呼叫,但不能呼叫main函式。main函式是系統呼叫的。
在程式中呼叫被調函式時,需要滿足以下三個條件。
①首先被呼叫的函式必須是已經存在的函式(是庫函式或使用者自己定義的函式)。但光有這一條還不夠。
②如果使用庫函式,還應該在本檔案開頭用#include命令將呼叫有關庫函式時所需用到的資訊「包含」到本檔案中來。
③如果使用使用者自己定義的函式,且該函式與對該函式的呼叫函式在同乙個原檔案中,特別是函式中呼叫的函式,該函式的位置在呼叫它的函式(即主調函式)的後面,應該在主調函式中對被呼叫的函式作宣告。宣告的作用是把函式名,函式引數的個數和引數型別等資訊通知編譯系統,以便在遇到函式呼叫時,編譯系統能正確識別函式並檢查呼叫是否合法。乙個函式一般要經過宣告才能使用(就好像變數一樣必須先宣告才能使用),除非它在呼叫它的前面定義。
C 函式的定義與呼叫
定義無參函式的一般形式 型別名 函式名 void 宣告部分 語句定義有參函式的一般形式 型別名 函式名 形式引數列表 宣告部分 語句寫兩個函式,分別要求兩個整數的最大公約數和最小公倍數,用主函式呼叫兩個函式,並輸出結果,兩個整數由鍵盤輸入。include stdafx.h include using...
3 1 函式的定義與呼叫
函式是c 程式的基本組成模組。通過函式,可以把乙個複雜任務分解成為若干個易於解決的小任務。充分體現結構化程式設計由粗到精,逐步細化的設計思想。什麼是函式 函式是c 程式的基本組成模組。組成c 程式的若干函式中,有乙個main winmain 函式,是程式執行的入口,它可以呼叫其他函式。而其他一般函式...
C 函式的定義與呼叫
函式是c 程式的基本組成模組。通過函式,可以把乙個複雜任務分解成為若干個易於解決的小任務。充分體現結構化程式設計由粗到精,逐步細化的設計思想。什麼是函式 函式是c 程式的基本組成模組。組成c 程式的若干函式中,有乙個main winmain 函式,是程式執行的入口,它可以呼叫其他函式。而其他一般函式...