函數是一個「黑盒子」:輸入資訊(參數),內部處理,輸出結果(回傳值)。
return 將值回傳給呼叫者型別 函數名(參數列表)
參數宣告
{
// 函數主體
return(運算式);
}
回傳型別 函數名(參數型別 參數名, ...)
{
// 函數主體
return 運算式;
}
void try_func(int i) // i 為形式參數
{
// 處理邏輯
}
int main(void)
{
int number = 1; // number 為實際參數
try_func(number); // 傳值呼叫
return 0;
}
實際參數可以是常數、變數或運算式。形式參數與實際參數佔用不同記憶體位置,函數內修改形式參數不影響實際參數(傳值呼叫)。
void try_func(int base)
{
base = base + 5; // 僅修改區域副本
}
int main(void)
{
int number = 1;
try_func(number);
// number 仍為 1
return 0;
}
float duff(int k); // 函數原型宣告
int main(void)
{
int n = 10;
float q = duff(n); // 接收回傳值
return 0;
}
float duff(int k) // 函數定義
{
float tor = k * 1.5;
return tor; // 回傳 float 值
}
在呼叫端需先以函數原型宣告回傳型別與參數型別,編譯器才能正確檢查呼叫語法。
return 陳述式,型別必須與宣告一致。