C 學習文件 運算子與表示式

2021-10-06 02:55:05 字數 3570 閱讀 1914

算術運算子:+、-、*、 /、 %、++、–

賦值運算子:= 、+=、-= 、*= 、/=、%=

關係運算子:< 、<= 、>=、== 、!=

邏輯運算子:! 、 &&、 ||

條件運算子:? :

位運算子:<>、~、| 、^、&

sizeof運算子(求位元組運算子):sizeof

逗號運算子:,

•其它運算子:

​ 指標運算子(、&)、分量運算子( 、->)、函式呼叫運算子(())、強制型別轉換運算子((type))

表示式是用於計算的式子,它由運算子、運算數和括號組成

算術表示式:由算術運算子和位操作運算子組成的表示式

邏輯表示式:由邏輯運算子組成的表示式。

​ –其表示式值的型別為邏輯型

關係表示式:由關係運算子組成的表示式。

​ –其表示式值的型別為邏輯型

賦值表示式:由賦值運算子組成的表示式

條件表示式:由三目運算子組成的表示式

逗號表示式:用逗號將若干個表示式連起來組成的表示式

•(1)隱式型別轉換

​ –隱式型別轉換是由編譯器自動完成的型別轉換。

​ 當編譯器遇到不同型別的資料參與同一運算時,會自動將它們轉換為相同型別後再進行運算。

•(2)顯式型別轉換

​ –顯式型別轉換是由程式設計師顯式指出的型別轉換

​ –轉換形式有兩種

型別名(表示式)​ **(型別名)**表示式

•(3)轉換規則​ –當參與運算的運算元必須是bool型時,如果運算元是其它型別,編譯系統會自動將非0資料轉換為true,0轉換為false。

​ –位運算的運算元必須是整數

​ –賦值運算要求左值與右值的型別相同,若不同,系統自動轉換為左值的型別。

資料型別轉換:

有三種轉換方式:自動轉換、賦值轉換和強制轉換。

​ 在進行雙目運算時,系統將兩個不同型別的資料自動轉換成同一型別。自動轉換的規則如圖所示。

例如

int x=2;

float y=1.6;

double z=1.6;

z=x*y+z;

​ 1)y的值自動轉換double型,x也轉換成與相同的型別

​ 2)計算2.0*1.6 結果為 3.2

​ 3計算3.2+1.6

​ 4)給z賦值

假設已指定i為整型變數,f為float變數,d為double型變數,e為long型,有下面表示式:

10+′a′+if-d/e

運算次序為:

①進行10+′a′的運算,先將′a′轉換成整數97,運算結果為107。

②進行if的運算。先將i與f都轉換成double型,運算結果為double型。

③整數107與if的積相加。先將整數107轉換成雙精度數(小數點後加若干個0,即107.000…00),結果為double型。

④將變數e轉換成double型,d/e結果為double型。

⑤將10+′a′+i*f的結果與d/e的商相減,結果為double型。

在賦值時將賦值符右邊值的型別轉換成與其左邊變數型別一致的型別。(1) 將整型資料賦給單、雙精度變數時,數值不變,但以浮點數形式儲存到變數中。

(2) 將實型資料賦給整型變數時,捨棄實數的小數部分。如x為整型變數,執行「x=4.25」時,取值為x=4。

(3) unsigned int型資料賦給int型資料變數時,不存在符號擴充套件,只需將高位補0即可。

(4) 精度高的資料型別向精度低的資料型別轉換時,資料的精度有可能降低。

(5) 字元型資料賦給整型變數,將字元的ascii碼賦給整型變數。

(6) 將乙個int、short或long型資料賦給乙個char型變數,只將其低8位原封不動地送到char型變數(發生截斷)。

例如

short int i=289;

char c;

c=i;//將乙個int型資料賦給乙個char型變數

在表示式中不同型別的資料會自動地轉換型別,以進行運算。

例如:

(double)a (將a轉換成double型別)

(int)(x+y) (將x+y的值轉換成整型)

(float)(5%3) (將5%3的值轉換成float型)

如果寫成

(int)x+y

則只將x轉換成整型,然後與y相加。

int(x) 或 int(x+y)

型別名不加括號,而變數或表示式用括號括起來。這種形式類似於函式呼叫。但許多人仍習慣於用第一種形式,把型別名包在括號內,這樣比較清楚。需要說明的是在強制型別轉換時,得到乙個所需型別的中間變數,但原來變數的型別未發生變化

例如:

(int)x

如果x原指定為float型,值為3.6,

進行強制型別運算後得到乙個int型的中間變數,它的值等於3,而x原來的型別和值都不變。

#includeusing namespace std;int main( )

執行結果如下:

x=3.6,i=3

x的型仍為float型,值仍等於3.6。

C 運算子與表示式

作用 用於處理四則運算 算術運算子包括以下符號 運算子術語示例結果 正號 33 負號 3 3 加 10 515 減10 55 乘10 550 除10 52 取模 取餘 10 31 前置遞增 a 2 b a a 3 b 3 後置遞增 a 2 b a a 3 b 2 前置遞減 a 2 b a a 1 b...

C 運算子與表示式

作用 用於處理四則運算 算術運算子包括以下符號 運算子術語示例結果 正號 33 負號 3 3 加 10 515 減10 55 乘10 550 除10 52 取模 取餘 10 31 前置遞增 a 2 b a a 3 b 3 後置遞增 a 2 b a a 3 b 2 前置遞減 a 2 b a a 1 b...

C 運算子與表示式

變數存資料,運算子處理資料,運算子與常量變數組合起來叫表示式,每個表示式都有值。運算子有三類 單目運算 帶乙個運算元 雙目運算 帶兩個運算元 三目運算 帶三個運算元 被賦值變數的值,就是整個表示式的值 a 的值為 5,整個表示式 a 5 的值也為 5 a 5 連續賦值運算從右向左 右結合性 先賦值 ...