首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C 語言學習筆記 1:詞法六大類、編程規範與字符集完整筆錄

     編輯:關於C語言

C 語言詞法六大類完整筆錄

類別定義與規則合法示例非法示例
標識符字母/數字/下劃線組成,**首字符必須為字母或下劃線**;大小寫敏感;標準 C 不限長度 (編譯器實現有限制,如早期前 8 位有效)a, x, _3x, BOOK_1, sum53s (數字開頭), s*T (非法字符*), -3x (符號開頭), bowy-1 (減號非法)
關鍵字語言保留字,具特定語義,不可作標識符。三大類:
1. 類型說明符 (int, double...)
2. 語句定義符 (if, else, for, while...)
3. 預處理命令字 (#include, #define...)
int, if, for, while, return, struct, const, static不可自定義同名標識符
運算符1個或多字符組成,與運算元構成表達式。含算術/關系/邏輯/位/賦值/條件/逗號/尺寸/成員/下標/調用等豐富集合+, -, *, /, %, ++, --, ==, !=, &&, ||, !, &, |, ^, ~, <<, >>, =, +=, ?:, sizeof, ., ->, [], ()—
分隔符逗號 , (參數/聲明分隔)、空格 (詞法分隔)。**關鍵字/標識符間必須至少一空格**,否則語法錯誤 (如 inta 被識別為單一標識符)int a, b; if (x > 0)inta; // 錯誤
常量數字常量、字符常量 'a'、字符串常量 "hello"、符號常量 #define MAX 100、轉義字符 \n, \t, \\, \', \"。詳見後續章節123, 3.14, 'A', "C", MAX, '\n'—
註釋符/* ... */ (C89 標準),// ... (C99+)。**不可嵌套**。可出現任意位置。調試時可暫時註釋代碼塊/* 註釋 */ // 單行註釋/* /* 內層 */ 外層 */ // 錯誤:嵌套

編程風格規範 (養成良好習慣)

  1. 一語句/聲明一行:增強可讀性、便於版本控制 diff。
  2. 大括號獨佔行、對齊:{ 與所屬語句首字母對齊,} 獨佔行對齊 {。
    if (cond) { ❌
    if (cond)
    { ✅
  3. 層級縮進:低一層次比高一層次縮進 4 空格 (或 1 Tab)。體現控制流層次,極大提升可讀性。

C 語言字符集

  • 字母:a-z (26)、A-Z (26)
  • 數字:0-9 (10)
  • 空白符:空格、制表符 \t、換行符 \n、回車 \r、換頁 \f、垂直製表 \v。**除字符/字符串常量外,編譯器忽略空白符**,僅作分隔。
  • 標點與特殊字符:~ ! @ # $ % ^ & * ( ) - _ + = { } [ ] | \ : ; " ' < > , . ? / 等。

標識符命名黃金法則

  1. 見名知意:user_count 而非 uc。
  2. 統一風格:項目內統一 snake_case / camelCase / PascalCase。
  3. 避免保留標識符:雙下劃線開頭 __xxx、下劃線+大寫開頭 _Xxx 為編譯器/標準庫保留。
  4. 作用域越小名字越短:迴圈變量 i, j, k 可接受;全局/類成員必須語義完整。

源程序結構特點

  • 由一或多個源文件組成。
  • 每文件含一或多個函數。
  • **整個程序有且僅有一個 main 函數** (程序入口)。
  • 預處理命令 (#include 等) 通常置於文件最前。
  • 每聲明/語句以分號結尾;但預處理命令、函數頭、} 後**不加**分號。
  • 標識符/關鍵字間必須有空格分隔。

總結

這份筆記覆蓋了 C 語言詞法六大類核心規則、編程風格三大鐵律、字符集構成、標識符命名法則、源程序結構特點。扎實掌握詞法層面規則是閱讀、編寫、調試 C 代碼的語法基石。建議配合《C Primer Plus》或 K&R 系統學習,並在每日編碼中強化風格規範,將規範內化為肌肉記憶。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved