許多初學者聽說「指標難、記憶體難、未定義行為多」就望而卻步。實際上,掌握以下 10 大類知識點,即可覆蓋 95% 以上的 C 程式設計日常需求與考試大綱(含全國計算機二級)。
char/short/int/long/float/double、有號/無號、_Bool, _Complex),sizeof、對齊、limits.h/float.h 極值常數。sizeof、型別轉換(隱性/顯式)、運算子優先序與結合性、副作用與序列點。if/else, switch, for/while/do-while, break/continue/goto/return,迴圈不變式與邊界條件分析。stdarg.h)、內聯(inline)、_Noreturn。\0 結尾、常用字串函數(strlen/strcpy/strcat/strcmp/strchr/strstr)、緩衝區溢出防範。void* 通用指標、restrict、指向結構體/聯合的指標、動態記憶體(malloc/calloc/realloc/free)、常見錯誤(野指標、記憶體洩漏、雙重釋放、釋放後使用)。offsetof 宏。FILE*)vs 檔案描述符(POSIX),文本/二進位模式,fopen/fclose/fread/fwrite/fprintf/fscanf/fgets/fputs,隨機存取(fseek/ftell/rewind),錯誤處理(ferror/feof/perror)。#define、參數化宏、## 串聯、# 字串化)、條件編譯(#if/#ifdef/#ifndef/#elif/#else/#endif)、檔案包含(#include 路徑搜尋)、#pragma、_Pragma、預定義宏(__FILE__, __LINE__, __DATE__, __STDC_VERSION__)。<stdlib.h>(轉換、亂數、搜尋排序、記憶體、程式結束)、<math.h>、<time.h>、<ctype.h>、<stdarg.h>、<setjmp.h>(非局部跳轉)、<signal.h>、<errno.h>、<assert.h>。「基礎是零也完全可以學的……我考 2 級一次全過了。筆試要仔細點,知識點考的很細!」
結語: C 語言核心知識點有限且結構清晰。零基礎者只要每天動手寫代碼 1-2 小時,堅持 4-6 週,即可建立扎實基礎,應付考試或進階學習綽綽有餘。