| 維度 | 難度 | 原因 | 應對策略 |
|---|---|---|---|
| 語法規則 | ⭐ 低 | 關鍵字少(32個)、規則正交、無複雜語法糖 | 速讀語法手冊,重練習 |
| 核心概念 | ⭐⭐⭐ 高 | 指針、內存模型、未定義行為、編譯鏈接 | 畫內存圖、讀標準、用工具 |
| 標準庫 | ⭐⭐ 中 | 函數多但規律性強、需查閱手冊 | 常用函數背誦、不常用查文檔 |
| 工程實踐 | ⭐⭐⭐⭐ 極高 | 構建系統、跨平台、併發、性能調優、舊代碼維護 | 項目實戰、讀開源代碼 |
階段1: 變量即內存盒子 → 畫圖:地址、值、類型
階段2: 指針即地址變量 → 理解 *& 操作互逆、指針算術
階段3: 數組退化為指針 → 理解 a[i] ≡ *(a+i)、函數參數傳遞本質
階段4: 動態內存管理 → malloc/free 配對、所有權語義、RAII 思想
階段5: 函數指針/回調 → 抽象控制流、多態雛形、事件驅動
print /x ptr 查看地址、x/10x addr 掃描內存C 語言不難,難的是建立正確的心智模型。
每個段錯誤都是免費的內存模型修正課。
「指針難」是因為試圖用高級語言直覺理解底層機制。
接受「C 語言要求程序員對機器模型負責」這一事實,將難點轉化為理解計算機系統的階梯。