函式是乙個命名了的**塊,我們通過呼叫函式執行相應的**。函式可以有 0 個或多個引數,而且(通常)會產生乙個結果。可以過載函式(同乙個名字可以對應幾個不同的函式)。
乙個典型的函式(function)定義包括以下幾個部分:
編寫函式
// val 的階乘是 val * (val-1) * (val-2)... * ((val - (val - 1)) * 1)
intfact
(int val)
呼叫函式
int
main()
函式的呼叫完成兩項工作:
用實參初始化函式對應的形參;
將控制權轉移給被呼叫函式。
形參和實參
實參是形參的初始值。
實參的型別必須與對應的形參型別匹配。
函式的形參列表
函式的形參列表可以為空,但不能省略。
voidf1(
)// 隱式地定義空形參列表
voidf2(
void
)// 顯式的定義空形參列表
形參列表中的形參通常用逗號隔開,其中每個形參都是含有乙個宣告符的宣告。必須把形參的全部型別寫出來。
任意兩個形參都不能同名,而且函式最外層作用域中的區域性變數也不能使用與函式形參一樣的名字。
函式返回型別
函式的返回型別不能是陣列型別或者函式型別,但可以是指向陣列或函式的指標。
名字有作用域,物件有生命週期。
形參和函式體內部定義的變數統稱為區域性變數,僅在函式的作用域內可見。同時區域性變數還會隱藏在外層作用域中同名的其他所有宣告。
自動物件
只存在於塊執行期間的物件稱為自動物件(automatic object)。
區域性靜態物件
區域性靜態物件在程式的執行路徑第一次經過物件定義語句時初始化,並且直到程式終止才被銷毀。
size_t count_calls()
intmain()
return0;
}
如果區域性靜態變數沒有顯式的初始值,它將執行值初始化,內建型別的區域性靜態變數初始化為 0。
函式的名字必須在使用之前宣告。
函式的宣告無需函式體,用乙個分號替代。
因為函式的宣告不包含函式體,所以也就無需形參的名字。
函式宣告也稱作函式原型(function prototype)。
在標頭檔案中進行函式宣告
函式應該在標頭檔案中宣告而在原始檔中定義。
含有函式宣告的標頭檔案應該被包含到定義函式的原始檔中。
編譯和鏈結多個原始檔
第六章函式
第六章 函式 重要知識點 1 函式定義的語法形式 資料型別 函式名 形式參數列 關於函式的定義有如下說明。函式的資料型別是函式的返回值型別 若資料型別為void,則無返回值 函式名是識別符號,乙個程式中除了主函式名必須為main外,其餘函式的名字按照識別符號的取名規則可以任意選取。形式引數 簡稱形參...
第六章 函式
示例 使用函式列印菱形 include intprint star int main intprint star int i,j for i 0 i 4 i 定義無參函式 函式名後面的括號中是空的,沒有任何引數,定義無參函式的一般形式為 型別名 函式名 或 型別名 函式名 void 函式體包括宣告部...
python基礎 第六章 函式
使用 def 表示定義函式 語句。def hello name return hello,name print hello world hello,world print hello gumby hello,gumby 給函式編寫文件 def square x calculates the squa...