C語言常見語法 運算子和表示式

2021-09-23 23:41:52 字數 3182 閱讀 9637

1.++i , --i (在使用 i 之前,先使 i 的值加(減) 1)

2.i++ , i-- (在使用 i 之後,先使 i 的值加(減) 1)

3.int i=3;

int i=3,j;

j = ++i;// i 的值先變成 4,再賦給j,j的值為4

j = i++;// 先將 i 的值3賦給 j,j的值為 3,然後 i變成4

又如:

i=3;

printf("%d",++i); //輸出 4

//若是

printf("%d\n",i++); //輸出 3

4.注意

5.結合上面的基本要求和注意事項,來看「先變後用」還是「先用後變」 案例:

變數 j的值都是在 i=3,k=1的前提下求出的:

字尾運算:

(1)j=(5,6,(i++)+(i++)+(i++)): j=9(3+3+3)

(2)j=(k++,6,(i++)+(i++)+(i++)): j=9(3+3+3)

(3)j=1?(i++)+(i++)+(i++): 0: j=9(3+3+3)

(4)j=i?(i++)+(i++)+(i++): 0: j=12(3+4+5)

(5)j=k++?(i++)+(i++)+(i++): 0: j=12(3+4+5)

字首運算:

(6)j=(5,i,(++i)+(++i)+(++i)): j=18(6+6+6)

(7)j=(5,k++,(++i)+(++i)+(++i)): j=15(4+5+6)

(8)j=1?(++i)+(++i)+(++i): 0: j=18(6+6+6)

(9)j=1?(k++,(+i)+(++i)+++i)): 0: j=15(4+5+6)

(10)j=k++?(++i)+(++i)+(++i): 0: j=15(4+5+6)

理解上述式子用到的知識:

(1)逗號表示式:

逗號運算子是所有運算子中級別最低的。因此,下面兩個表示式的作用是不同的:

① x=(a=3,6*3)

② x=a=3,6*a

第①個是乙個賦值表示式,將乙個逗號表示式的值賦給x,x的值等於18。第②個是逗號表示式,它包括乙個賦值表示式和乙個算術表示式,x的值為3。

(2)三目運算子(結合方向,右到左)

一般形式為:

表示式1? 表示式2: 表示式3 

其求值規則為:如果表示式1的值為真,則以表示式2 的值作為條件表示式的值,否則以表示式2的值作為整個條件表示式的值。

6.作為初學者,寫自增,自減運算子時要特別注意使用的細節;看大佬寫的**,做題時,要認真分析邏輯關係,自增自減運算子與其他運算子相結合,注意優先順序,還有要從右向左計算。

7.c語言運算子優先順序表

優先順序運算子

名稱或含義

使用形式

結合方向說明1

陣列下標

陣列名[常量表示式]

左到右()

圓括號(表示式)/函式名(形參表)

.成員選擇(物件)

物件.成員名

->

成員選擇(指標)2-

負號運算子

-表示式

右到左單目運算子

(型別)

強制型別轉換

(資料型別)表示式

++自增運算子

++變數名/變數名++

單目運算子

--自減運算子

--變數名/變數名--

單目運算子

*取值運算子

*指標變數

單目運算子

&取位址運算子

&變數名

單目運算子

!邏輯非運算子

!表示式

單目運算子

~按位取反運算子

~表示式

單目運算子

sizeof

長度運算子

sizeof(表示式)3/

除表示式/表示式

左到右雙目運算子*乘

表示式*表示式

雙目運算子

%餘數(取模)

整形表示式%整形表示式

雙目運算子4+

加表示式+表示式

左到右雙目運算子-減

表示式-表示式

雙目運算子

5<<

左移變數《表示式

左到右雙目運算子

>>

右移變數》表示式

雙目運算子

6>

大於表示式》表示式

左到右雙目運算子

>=

大於等於

表示式》=表示式

雙目運算子

<

小於表示式《表示式

雙目運算子

<=

小於等於

表示式<=表示式

雙目運算子7==

等於表示式==表示式

左到右雙目運算子

!=不等於

表示式!=表示式

雙目運算子8&

按位與表示式&表示式

左到右雙目運算子9^

按位異或

表示式^表示式

左到右雙目運算子10|

按位或表示式|表示式

左到右雙目運算子

11&&

邏輯與表示式&&表示式

左到右雙目運算子

12||

邏輯或表示式||表示式

左到右雙目運算子

13?:

條件運算子

表示式1?表示式2:表示式3

右到左三目運算子14=

賦值運算子

變數=表示式

右到左/=

除后賦值

變數/=表示式

*=乘後賦值

變數*=表示式

%=取模後賦值

變數%=表示式

+=加後賦值

變數+=表示式

-=減後賦值

變數-=表示式

<<=

左移後賦值

變數<<=表示式

>>=

右移後賦值

變數》=表示式

&=按位與後賦值

變數&=表示式

^=按位異或後賦值

變數^=表示式

|=按位或後賦值

變數|=表示式15,

逗號運算子

表示式,表示式……

左到右從左到右順序運算

c語言運算子和表示式

第六次課 運算子與表示式 一 運算子和表示式 運算子 表示式 由運算元和運算子組成的式子,如 a b,1 2 c語言中單一的乙個變數或者單一的乙個常量是最簡單的表示式 提問 以下程式是輸出變數的值還是表示式的值?int main void 總結 永遠輸出表示式的值!1.優先順序與結合性 優先順序 參...

C語言運算子和表示式

概述 c語言一共有34種運算子,10種運算型別 算術運算子 關係運算子 位運算子 邏輯運算子 條件運算子 指標運算子 賦值運算子 逗號運算子 求位元組運算子 sizeof 強制型別轉換運算子 型別名 其他 下標 分量 函式 若按參與運算的物件個數,c語言運算子可分為單目運算子 如!雙目運算子 如 和...

C 運算子和表示式

歡迎購買我的專欄 1.高階c 學習 2.網路 c 提供了許多運算子。其中許多都受到內建型別的支援,可用於對這些型別的值執行基本操作。c 中有算術運算子 比較運算子 布林邏輯運算子 位運算子和移位運算子 相等運算子 在下面的 中,表示式的示例位於賦值的右側 int a,b,c a 7 b a c b ...