C的運(yùn)算符有以下幾類:
1.算術(shù)運(yùn)算符:* - + / %
2.關(guān)系運(yùn)算符: > < == != >= <=
3.邏輯運(yùn)算符:! && ||
4.位運(yùn)算符:<< >> ~ | ^ &
5.賦值運(yùn)算符:=及擴(kuò)展賦值運(yùn)算符
6.條件運(yùn)算符:?:
7.逗號(hào)運(yùn)算符:,
8.指針運(yùn)算符:*和&
9.求字節(jié)數(shù)運(yùn)算符:sizeof
10.強(qiáng)制類型轉(zhuǎn)換運(yùn)算符:(類型)
11.分量運(yùn)算符:. ->
12.下標(biāo)運(yùn)算符:[ ]
13.其他:如函數(shù)調(diào)用運(yùn)算符:()
注意:條件運(yùn)算符是C語言中惟一一個(gè)三目(三元)運(yùn)算符
優(yōu)先級(jí)
優(yōu)先級(jí)【高到低】:
第一級(jí):
圓括號(hào)【()】私恬、下標(biāo)運(yùn)算符【[]】、分量運(yùn)算符的指向結(jié)構(gòu)體成員運(yùn)算符【->】恋追、結(jié)構(gòu)體成員運(yùn)算符【.】
第二級(jí):
邏輯非運(yùn)算符【!】印颤、按位取反運(yùn)算符【~】放祟、自增自減運(yùn)算符【++ --】郊艘、負(fù)號(hào)運(yùn)算符【-】僚祷、類型轉(zhuǎn)換運(yùn)算符【(類型)】尺锚、指針運(yùn)算符和取地址運(yùn)算符【*和&】酷师、長度運(yùn)算符【sizeof】
第三級(jí):乘法運(yùn)算符【*】讶凉、除法運(yùn)算符【/】、取余運(yùn)算符【%】
第四級(jí):加法運(yùn)算符【+】山孔、減法運(yùn)算符【-】
第五級(jí):左移動(dòng)運(yùn)算符【<<】懂讯、右移動(dòng)運(yùn)算符【>>】
第六級(jí):關(guān)系運(yùn)算符【< > <= >= 】
第七級(jí):等于運(yùn)算符【==】、不等于運(yùn)算符【!=】
第八級(jí):按位與運(yùn)算符【&】
第九級(jí):按位異或運(yùn)算符【^】
第十級(jí):按位或運(yùn)算符【|】
第十一級(jí):邏輯與運(yùn)算符【&&】
第十二級(jí):邏輯或運(yùn)算符【||】
第十三級(jí):條件運(yùn)算符【?:】
第十四級(jí):賦值運(yùn)算符【= += -= *= /= %= >>= <<.= &= |= ^=】
第十五級(jí):逗號(hào)運(yùn)算符【,】
說明:
①G1不要求運(yùn)算對(duì)象的個(gè)數(shù)饱须,G2是單目運(yùn)算符,G13條件運(yùn)算符是三目運(yùn)算符域醇,其他都是雙目運(yùn)算符。
②G2蓉媳、G13條件運(yùn)算符譬挚、G14賦值運(yùn)算符是自右向左的【也就是右結(jié)合性】,其他都是自左向右【左結(jié)合性】
歸納各類運(yùn)算符【高到低】:
初等運(yùn)算符【()酪呻、->减宣、.】 G1
單目運(yùn)算符G2
算術(shù)運(yùn)算符(先乘除【取余】,后加減) G3,4
位運(yùn)算符【<< >>】 G5
關(guān)系運(yùn)算符G6,7
位運(yùn)算符【遞減& ^ |】 G8,9,10
邏輯運(yùn)算符(不包括玩荠!) G11,12
條件運(yùn)算符 G13
賦值運(yùn)算符G14
逗號(hào)運(yùn)算符 G15
左結(jié)合性和右結(jié)合性
C語言中各運(yùn)算符的結(jié)合性分為兩種:左結(jié)合性和右結(jié)合性漆腌。
例如:算術(shù)運(yùn)算符的結(jié)合性是自左至右,即先左后右阶冈。
如有表達(dá)式x-y+z則y應(yīng)先與“-”號(hào)結(jié)合闷尿,執(zhí)行x-y運(yùn)算,然后再執(zhí)行+z的運(yùn)算女坑。這種自左至右的結(jié)合方向就稱為“左結(jié)合性”填具。
而自右至左的結(jié)合方向稱為“右結(jié)合性”。 最典型的右結(jié)合性運(yùn)算符是賦值運(yùn)算符。如x=y=z劳景,由于“=”的右結(jié)合性誉简,應(yīng)先執(zhí)行y=z再執(zhí)行x=(y=z)運(yùn)算。
C語言運(yùn)算符中有不少為右結(jié)合性盟广,應(yīng)注意區(qū)別闷串,以避免理解錯(cuò)誤。(上文的優(yōu)先級(jí)有分辨左右結(jié)合性)筋量。
個(gè)人總結(jié)烹吵,轉(zhuǎn)載請標(biāo)明出處及鏈接,謝謝毛甲!