C 程序由關鍵字、標識符、常量、字符串字面量、運算符、分隔符六類詞法單元組成。理解每類符號的作用,是閱讀、編寫、調試代碼的基礎。
| 分類 | 關鍵字 | 作用 |
|---|---|---|
| 數據類型 | int | 整型 |
char | 字符型 | |
float | 單精度浮點 | |
double | 雙精度浮點 | |
short | 短整型 | |
long | 長整型 | |
signed | 有符號 | |
unsigned | 無符號 | |
void | 無類型/無返回值 | |
struct | 結構體 | |
union | 聯合體 | |
enum | 枚舉 | |
| 控制流程 | if/else | 條件分支 |
switch/case/default | 多路選擇 | |
for/while/do | 循環 | |
break/continue | 跳出/繼續循環 | |
goto | 無條件跳轉 | |
return | 函數返回 | |
| 存儲類別 | auto/register/static/extern | 變量生存期/作用域/鏈接屬性 |
| 類型限定 | const/volatile | 只讀/易變 |
| 其他 | sizeof | 類型/表達式大小(字節數) |
typedef | 類型別名 |
后綴 () [] -> . ++ --
一元 ++ -- + - ! ~ * & (type) sizeof
乘除模 * / %
加減 + -
移位 << >>
關系 < <= > >=
相等 == !=
位與 &
位異或 ^
位或 |
邏輯與 &&
邏輯或 ||
條件 ?:
賦值 = += -= *= /= %= &= ^= |= <<= >>=
逗號 ,
口訣:「單目雙目三目,算術移位關系,邏輯位或條件,賦值逗號最低」。
| 符號 | 名稱 | 典型用法 |
|---|---|---|
; | 分號 | 語句結束 |
{ } | 花括號 | 複合語句/塊、初始化列表 |
( ) | 圓括號 | 表達式分組、函數調用/聲明、強制轉換 |
[ ] | 方括號 | 數組下標、可變長數組聲明、屬性標記 |
, | 逗號 | 聲明分隔、參數分隔、逗號表達式 |
: | 冒號 | 標號、三元運算符、位域寬度 |
. | 點號 | 結構/聯合成員訪問 |
-> | 箭頭 | 指針訪問成員 |
# | 井號 | 預處理指令、字符串化運算符 |
## | 雙井號 | 標記連接運算符 |
'a'、'\n'、'\\'、'\''、'\x41'"Hello"、"Line1\nLine2"、"Path\\to\\file"\n換行、\t制表、\r回車、\0空字符、\\反斜槓、\"雙引號、\'單引號、\xHH十六進制、\OOO八進制。#include <header.h> // 系統頭文件
#include "my.h" // 用戶頭文件
#define PI 3.14159 // 宏定義
#define MAX(a,b) ((a)>(b)?(a):(b)) // 帶參宏
#undef NAME // 取消宏
#if DEBUG // 條件編譯
#elif TEST
#else
#endif
#error "message" // 編譯期報錯
#pragma once // 防止重複包含(非標準但廣泛支持)
main(),理清調用鏈。struct/typedef 定義,畫實體關係圖。net_*、db_*)。ctags/cscope/IDE 跳轉定義、調用圖、doxygen 生成文檔。C 語言代碼符號雖多,但核心高頻者有限。建議打印上表貼在工位,遇到陌生符號查表、查手冊、寫最小驗證程序。隨著項目經驗積累,符號語義將內化為直覺,閱讀代碼速度質變提升。