語法書 / AA 競程語法書 上冊 / 第七單元 / 本單元重點回顧

本單元重點回顧

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