J. Level 0 常見未定義行為速查表
未定義行為(undefined behavior, UB)代表 C++ 標準沒有規定結果。程式可能看似正常、印出怪值、直接當掉,或換一台電腦就不同。
| 常見 UB | 例子 | 怎麼避免 |
|---|---|---|
| 有號整數溢位 | int x = 2000000000 + 2000000000; |
估算運算過程最大/最小值,必要時用 long long |
| 區域變數未初始化就使用 | int sum; cout << sum; |
宣告時給初始值,例如 int sum = 0; |
| 整數除以 0 或取餘 0 | x / y,但 y == 0 |
運算前確認除數不是 0 |
| 陣列越界 | int a[10]; a[10] = 1; |
確認索引在 0 到 n - 1 |