函數(shù)
1. 定義函數(shù)
函數(shù)是一組一起執(zhí)行一個任務(wù)的語句。每個?C++ 程序都至少有一個函數(shù),即主函數(shù) main() ,所有簡單的程序都可以定義其他額外的函數(shù)。
?
返回類型?函數(shù)名(形式參數(shù))
{
????函數(shù)體 //執(zhí)行語句
}
在?C++ 中,函數(shù)由一個函數(shù)頭和一個函數(shù)主體組成。下面列出一個函數(shù)的所有組成部分:
返回類型:一個函數(shù)可以返回一個值。return_type 是函數(shù)返回的值的數(shù)據(jù)類型。有些函數(shù)執(zhí)行所需的操作而不返回值,在這種情況下,return_type 是關(guān)鍵字 void。
函數(shù)名:這是函數(shù)的實際名稱。函數(shù)名和參數(shù)列表一起構(gòu)成了函數(shù)簽名。
參數(shù):參數(shù)就像是占位符。當(dāng)函數(shù)被調(diào)用時,向參數(shù)傳遞一個值,這個值被稱為實際參數(shù)。參數(shù)列表包括函數(shù)參數(shù)的類型、順序、數(shù)量。參數(shù)是可選的,也就是說,函數(shù)可能不包含參數(shù)。
函數(shù)主體:函數(shù)主體包含一組定義函數(shù)執(zhí)行任務(wù)的語句。
舉例:
// 函數(shù)返回兩個數(shù)中較大的那個數(shù)
int max(int num1, int num2)
{
???// 局部變量聲明
???int result;
???if (num1 > num2)
??????result = num1;
???else
??????result = num2;
???return result;
}
?
如果想要先寫main函數(shù),后寫其他函數(shù),需要在main函數(shù)之前生命函數(shù)
函數(shù)聲明會告訴編譯器函數(shù)名稱及如何調(diào)用函數(shù)。函數(shù)的實際主體可以單獨定義。
函數(shù)聲明包括以下幾個部分:返回類型?函數(shù)名稱(參數(shù)列表);
針對上面定義的函數(shù)?max(),以下是函數(shù)聲明:int max(int num1, int num2);
在函數(shù)聲明中,參數(shù)的名稱并不重要,只有參數(shù)的類型是必需的,因此下面也是有效的聲明:int max(int, int);
函數(shù)要使用參數(shù),則必須聲明接受參數(shù)值的變量。這些變量稱為函數(shù)的形式參數(shù)。
形式參數(shù)就像函數(shù)內(nèi)的其他局部變量,在進入函數(shù)時被創(chuàng)建,退出函數(shù)時被銷毀。
當(dāng)調(diào)用函數(shù)時,有三種向函數(shù)傳遞參數(shù)的方式:傳值調(diào)用、指針調(diào)用、引用調(diào)用。