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

C語言表達式體系詳解:算術、賦值表達式與隱式類型轉換規則

     編輯:關於C語言

C語言表達式核心:算術、賦值與類型轉換

表達式是 C 語言計算與數據流動的基本單元。理解算術表達式構成、賦值表達式的右結合特性、以及不同類型賦值時的自動轉換規則,是寫出正確高效代碼的基石。

一、算術表達式

由算術運算符(+ - * / %)、括號連接常量、變量、函數調用等構成。示例:

a + b
(a * 2) / c
(x + r) * 8 - (a + b) / 7
++i
sin(x) + sin(y)
(++i) - (j++) + (k--)

包含前綴/後綴自增減、函數調用、括號改變優先級等豐富形式。

二、賦值運算符與賦值表達式

簡單賦值 =

變量 = 表達式
x = a + b
w = sin(a) + sin(b)
y = i++ + --j

功能: 先計算右側表達式值,再賦予左側變量。

鏈式賦值與右結合性

a = b = c = 5
// 等價於 a = (b = (c = 5))
// 先 c=5,值為5賦予b,值為5賦予a,最終 a=b=c=5

= 為右結合,這使得鏈式賦值成為可能。

賦值表達式即表達式,可嵌套

x = (a = 5) + (b = 8)  // 合法!a=5 值為5,b=8 值為8,x=13
x = 8;                 // 賦值語句:表達式加分號
a = b = c = 5;         // 賦值語句

C語言將 = 定義為運算符而非語句,使賦值表達式可出現在任何允許表達式的地方,極大增強了表達能力。

三、賦值時的隱式類型轉換規則

當 = 兩側類型不同時,系統自動將右側類型轉為左側類型:

右側類型 → 左側類型轉換規則示例
實型 → 整型捨去小數部分int a = 8.88; // a=8
整型 → 實型數值不變,以浮點形式存儲(小數部為0)float x = 322; // x=322.0
字符型 → 整型ASCII 碼放入低 8 位,高 8 位補 0int a = 'k'; // a=107
整型 → 字符型只取低 8 位char c = 322; // c=66 ('B')

四、綜合驗證程序

int a, b = 322;
float x, y = 8.88;
char c1 = 'k', c2;
a = y;   // 實→整:a=8
x = b;   // 整→實:x=322.0
a = c1;  // 字符→整:a=107 ('k' ASCII)
c2 = b;  // 整→字符:c2=66 (低8位)
printf("%d,%f,%d,%c", a, x, a, c2); // 輸出 8,322.000000,107,B

掌握賦值表達式的右結合性、嵌套用法,以及四類隱式轉換規則,能讓你精準預測混合類型運算結果,避免精度丟失、截斷等難以察覺的 Bug。

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