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

C 語言詞法符號體系全解析:關鍵字分類、標識符規則與運算符優先級

     編輯:關於C語言

詞法符號分類

C 語言詞法符號(Token)分為五大類:關鍵字、標識符、分隔符、運算符、標點符。

1. 關鍵字(32 個,C99 前)

C語言32個關鍵字

按功能分類(七大類)

大類小類關鍵字說明
數據類型基本類型(5)void, char, int, float, doublevoid 也用於無類型指針
類型修飾(4)short, long, signed, unsigned修飾 int,可省略 int
復雜類型(5)struct, union, enum, typedef, sizeofsizeof 是關鍵字非函數
存儲類別(6)auto, static, register, extern, const, volatileconst/volatile 合稱 cv 特性
流程控制跳轉(4)return, continue, break, goto
分支(5)if, else, switch, case, default
循環(3)for, do, while條件為真繼續,假跳出

存儲類別關鍵字深度解析

關鍵字作用內存區生命周期
auto自動變量(默認)棧塊作用域
static靜態變量/限制作用域全局/靜態區程序全期
register建議寄存器存儲寄存器/棧塊作用域
extern聲明外部符號--
const只讀(可能被硬件/其他線程修改)只讀區/數據區視定義處
volatile防止編譯器優化,每次從內存讀取--

2. 標識符命名規則

  1. 由字母、數字、下劃線組成
  2. 首字符必須是字母或下劃線
  3. 不能與關鍵字重名
  4. 區分大小寫,長度無標準限制(編譯器實現定義)
  5. 最佳實踐:見名知意、駝峰/下劃線風格統一、避免保留標識符(雙下劃線開頭、下劃線+大寫開頭)

3. 分隔符

符號名稱用途
,逗號變量列表、參數列表、初始化列表分隔
空白符空格/制表/換行Token 分隔、格式化輸入默認分隔
;分號語句結束、for 循環三表達式分隔
:冒號標號、三元運算符、位域寬度

4. 運算符(按功能分類)

運算符分類表

必須注意的 6 大坑

  1. 求餘 % 僅支持整數,浮點數用 fmod()
  2. 整除 / 兩側均為整數時才截斷,有浮點數則浮點除法
  3. 關係運算符無空格:== >= <= !=,切勿寫成 = =
  4. 邏輯運算符短路特性:&& 左偽右不算,|| 左真右不算
  5. 位運算符僅支持整數:& | ^ ~ << >>
  6. 復合賦值無空格:+= -= *= /= %= &= ^= |= <<= >>=
  7. sizeof 是關鍵字:sizeof(int) 或 sizeof expr,非函數調用

5. 標點符(13 個)

[ ]  ( )  { }  *  ,  :  =  ;  ...  #  &  ->  .
符號名稱/用途
[ ]數組下標/變長數組聲明
( )函數調用/類型轉換/分組/宏參數
{ }復合語句/初始化列表/結構體定義
*指針聲明/解引用/乘法
,逗號運算符/參數分隔
:標號/三元運算符/位域
=賦值/初始化
;語句結束
...可變參數/指定初始化器
#預處理指令/字符串化/Token粘連
&取地址/按位與/引用聲明
->指針訪問成員
.直接訪問成員/結構體字面量

本文整理自「成長之路」博客,原文地址:https://7905648.blog.51cto.com/7895648/1297379

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