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

C語言筆記:類型、運算符與表達式核心知識體系

     編輯:關於C語言

C語言筆記:類型、運算符與表達式核心知識體系

本文系統梳理 C 語言基礎:變量命名、數據類型、常量分類、聲明初始化、運算符優先級與結合性、類型轉換規則、自增自減陷阱、位運算應用、賦值運算符、條件表達式,構建完整知識框架。

一、變量與常量命名規範

  • 由字母、下劃線、數字組成,首字符非數字
  • 區分大小寫;變量用小寫,符號常量全大寫下劃線分隔
  • 局部變量名短(如 i, j),外部變量名長且語義清晰

二、四大基本類型與限定符

類型關鍵字說明
字符char1 字節,可作小整數運算
整型int機器字長,通常 4 字節
單精度float4 字節,~6 位有效數字
雙精度double8 字節,~15 位,推薦數學運算用

限定符:short/long 修飾 int;signed/unsigned 修飾 char 和整型;long double 高精度浮點。

三、常量完整分類

  1. 整型常量:十進制、八進制(0 前綴)、十六進制(0x 前綴)、長整型(L 後綴)、無符號(U 後綴)
  2. 浮點常量:帶小數點或指數,默認 double,f/F 為 float,l/L 為 long double
  3. 字符常量:單引號括起,本質是整數(ASCII 值),'\0' 為空字符(值 0)
  4. 字符串常量:雙引號括起,隱含結束符 '\0',存儲長度 = 可見字符數 + 1
  5. 枚舉常量:enum NAME {A=0, B, C=5}; 替代 #define,具類型安全、作用域、可調試
  6. 常量表達式:編譯期計算,如 #define MAX 1000; char buf[MAX+1];

四、聲明與初始化

int i = 0;
int len = MAX + 100;
const int PI = 3.14; // 常量,不可修改
const char msg[] = "00000"; // 數組元素不可修改
int strlen(const char s[]); // 參數不可修改

五、運算符優先級與結合性核心表

  1. 算術:+ - * / %(% 僅整型,整除截斷)
  2. 關系:> >= < <=(同級)
  3. 等性:== !=(優先級低於關系)
  4. 邏輯:&& ||(短路求值,左到右,&& 優先於 ||)
  5. 賦值:= += -= *= /= %= <<= >>= &= ^= |=(右結合)
  6. 條件:? :(右結合,僅求值一分支)

關鍵:關系/邏輯表達式值為 1(真)或 0(假);! 將非 0 轉 0,0 轉 1。

六、類型轉換規則

  • 整型提升:char/short → int
  • usual arithmetic conversions:雙操作數向「較高」類型轉換:long double → double → float → long → int
  • 賦值轉換:右值轉為左值類型,可能截斷或擴展
  • 強制轉換:(type)expr 顯式指定

經典 atoi 利用字符連續性:n = 10*n + (s[i]-'0')

七、自增自減陷阱

++n  // 先增後用
n++  // 先用後增
// 只能作用於變量,不能用於表達式如 (a+b)++
// strcat 經典用法:while((s[i++] = t[j++]) != '\0');

八、位運算實戰

  • & 屏蔽位(掩碼)
  • | 置位
  • ^ 翻轉位/交換值
  • << >> 乘除 2 的冪、提取位段
  • ~ 取反

僅適用於整型(含 char)。

九、條件表達式

z = (a > b) ? a : b; // max
// expr2、expr3 只有一個被求值,可用於副作用控制

掌握這些核心規則,是寫出正確、高效、可移植 C 代碼的基石。

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