C語言 運算子與表示式

2021-10-08 09:08:44 字數 2269 閱讀 5937

1.運算子

用於進行某種運算的符號

通過涉及到的數目分為單目運算子(i++),雙目運算子(+ - * / % …),三目運算子( (判斷)? a:b)

在c語言中a+b 是不等價與 b+a 的,ru:(i++)+ (i+j) 與 (i+j)+ (i++)

c語言運算優先順序,單目運算子 > 算術運算子 > 關係運算子 > 邏輯運算子 > 條件運算子 > 賦值運算子 > 逗號運算子

1)算術運算子

進行算術運算的符號,

++-- :單目運算子

注意(++i)與(i++)是不同的。i++先輸出後運算,++i先運算後輸出

int i=1;

printf

("%d"

,i++);

// 1 printf("%d",++i); // 2

執行完此語句後i的值都是2;

+-*/% 雙目運算子

/ 得到的結果為商,如3

/2 得到的結果為 1.5

/2的結果為2

% 得到的結果為餘數 如6

%4 得到的結果為 2

當涉及到兩個不同型別的資料,如 double 和 int ,需要向精準度高的轉換。

2)關係運算子

用來判斷兩個數的大小關係

<

>

>=

<=

==(等於) !=

(不等於)

關係成立結果為1,不成立結果為0

值得注意的是5

>

4>

3 這種寫法結果為0,步驟為,5

>

4結果為1,然後1

>

3結果為0

3)邏輯運算子

!邏輯非 單目運算子 「取反」

&& 邏輯與 || 邏輯或 雙目運算子 具有(惰性運算!)

邏輯真:(非0或者1)

邏輯假:0

4)位運算子

按照bit位進行運算

& 按位與 都是1則為1

| 按位或 有1就為1

^ 按位異或 不同為1,相同為0

~ 按位取反 1變成0,0變成1

《按位左移 >>按位右移

左移 右邊補0,捨棄超出的高位元組

右移 丟棄右邊的低位元組,高位元組,有符號補符號位,無符號(定義為unsigned)補0

兩個數交換,不涉及到第三個元素:

5)賦值運算子:

= 雙目運算子,優先順序只比逗號運算子高

賦值運算子要求左邊的運算元必須有左值(可寫的位址)

5=5 error

2+3=5 error

i++=5 error 左邊不能為表示式

a +=5

+=6; error

6)條件運算子

expression ? a :b

如果表示式expression值為真,整個表示式的值就是a的值

如果表示式expression值為假,整個表示式的值就是b的值

7)逗號運算子

優先順序最低,結合性從左至右 ,最後的值為最後乙個的值

a =(a =

6,b =5)

;//a = =5

求值順序:

先求表示式1的值,再表示式2的值 。。。。。最後

求表示式n的值。

整個逗號表示式的值就是表示式n的值。

8) 指標表示式

&取位址 *取值

9)求位元組運算子 sizeof

單目運算子 ,求乙個物件或型別所佔空間位元組數。

sizeof(x) 求x的型別,不要求x存在,但是要求x的型別是確定的

10) 分量運算子:

求結構體中成員變數(分量)

.->

11) 下標運算子

[]int a[10]

; a[

0] a[1]

12) 強制轉換運算子

(型別)

eg:(unsigned

char

)255

13) 其他

2.表示式

什麼是表示式?

表達某個意思的式子

在c語言,表示式一般是指用運算子連線起來的式子

表示式一定會有乙個值,這個值就是上面的表示式的"某個意思"

a =5 a =

5, n =

6

C語言運算子與表示式

運算子是一種向變異程式說明乙個特定的數學或邏輯運算的符號。主要有三大類 算術運算子 關係運算與邏輯運算子 按位運算子。除此之外,還有一些用於完成特殊任務的運算,如賦值運算子 條件運算子 逗號運算子等。c語言的運算子歸納如下 1 算術運算子 2 關係運算子 3 邏輯運算子 4 位運算子 按位與 運算子...

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...