- 函式定義與呼叫:函式是可重複使用的程式碼段,定義時指定參數型態、回傳型態,呼叫時傳入參數;同一段邏輯重複出現(Rule of Three)就該抽成函式。
- 巢狀呼叫:函式呼叫的結果可以直接當另一次呼叫的參數(
f(f(2))、gcd(gcd(x, y), z));函式內也能呼叫別的函式,題目給的數學函數照定義各寫一個函式再組合最不容易錯。
- main 也是函式:回傳
0 代表程式正常結束;在 main 任何地方 return 0; 可提早結束程式,適合特殊情況先處理先離開。
- Return 語句:執行
return 後函式立刻結束,後續程式不執行;非 void 函式忘記 return 是未定義行為(main 例外)。
- 判斷函式:回傳
bool 的函式直接 return 條件;;放進 &&/|| 時注意短路——右邊的函式可能根本不會被呼叫。
- Pass by value vs reference:預設是複製值,加上
& 才能修改外面的變數;陣列傳入函式時有特殊行為,修改會影響原陣列。
- 常用內建函式:
swap()、max()/min()、abs()、gcd()/lcm() 都是高頻工具;lcm 的參數記得用 long long 防溢位,不會用的函式查 cppreference。
- 陣列參數:傳陣列時必須額外傳大小;在函式內
sizeof(arr) 失效,因為函式收到的只是「陣列開頭在哪裡」,不是整個陣列。
- 函式實作題:只交題目要求的函式,不寫
main、不做輸入輸出;資料從參數進、答案由回傳值或修改參數/陣列交回。