考試大計(jì)算機(jī)等級(jí)站整理:
C語言的內(nèi)部運(yùn)算符很豐富,運(yùn)算符是告訴編譯程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào)。C語言有三大運(yùn)算符:算術(shù)、關(guān)系與邏輯、位操作。另外,C還有一些特殊的運(yùn)算符,用于完成一些特殊的任務(wù)。
2.6.1算術(shù)運(yùn)算符
表2-5列出了C語言中允許的算術(shù)運(yùn)算符。在C語言中,運(yùn)算符“ ”、“-”、“*”和“/”的用法與大多數(shù)計(jì)算機(jī)語言的相同,幾乎可用于所有C語言內(nèi)定義的數(shù)據(jù)類型。當(dāng)“/”被用于整數(shù)或字符時(shí),結(jié)果取整。例如,在整數(shù)除法中,10/3=3。
一元減法的實(shí)際效果等于用-1乘單個(gè)操作數(shù),即任何數(shù)值前放置減號(hào)將改變其符號(hào)。模運(yùn)算符“%”在C語言中也同它在其它語言中的用法相同。切記,模運(yùn)算取整數(shù)除法的余數(shù),所以“%”不能用于float和double類型。
最后一行打印一個(gè)0和一個(gè)1,因?yàn)?/2整除時(shí)為0,余數(shù)為1,故1%2取余數(shù)1。
2.6.2自增和自減
C語言中有兩個(gè)很有用的運(yùn)算符,通常在其它計(jì)算機(jī)語言中是找不到它們的—自增和自減運(yùn)算符, 和--。運(yùn)算符“ ”是操作數(shù)加1,而“--”是操作數(shù)減1,換句話說:x=x 1;同 x;x=x-1;同--x;
自增和自減運(yùn)算符可用在操作數(shù)之前,也可放在其后,例如:x=x 1;可寫成 x;或x ;但在表達(dá)式中這兩種用法是有區(qū)別的。自增或自減運(yùn)算符在操作數(shù)之前,C語言在引用操作數(shù)之前就先執(zhí)行加1或減1操作;運(yùn)算符在操作數(shù)之后,C語言就先引用操作數(shù)的值,而后再進(jìn)行加1或減1操作。請(qǐng)看下例:
x=10;
;y= x;
此時(shí),y=11。如果程序改為:
x=10;y=x ;
則y=10。在這兩種情況下,x都被置為11,但區(qū)別在于設(shè)置的時(shí)刻,這種對(duì)自增和自減發(fā)生時(shí)刻的控制是非常有用的。在大多數(shù)C編譯程序中,為自增和自減操作生成的程序代碼比等價(jià)的賦值語句生成的代碼
要快得多,所以盡可能采用加1或減1運(yùn)算符是一種好的選擇。
。下面是算術(shù)運(yùn)算符的優(yōu)先級(jí):
: 、-
--
-(一元減)
*、/、%最低 、-編譯程序?qū)ν?jí)運(yùn)算符按從左到右的順序進(jìn)行計(jì)算。當(dāng)然,括號(hào)可改變計(jì)算順序。C語言
處理括號(hào)的方法與幾乎所有的計(jì)算機(jī)語言相同:強(qiáng)迫某個(gè)運(yùn)算或某組運(yùn)算的優(yōu)先級(jí)升高。
2.6.3關(guān)系和邏輯運(yùn)算符
關(guān)系運(yùn)算符中的“關(guān)系”二字指的是一個(gè)值與另一個(gè)值之間的關(guān)系,邏輯運(yùn)算符中的“邏輯”二字指的是連接關(guān)系的方式。因?yàn)殛P(guān)系和邏輯運(yùn)算符常在一起使用,所以將它們放在一起討論。關(guān)系和邏輯運(yùn)算符概念中的關(guān)鍵是True(真)和Flase(假)。C語言中,非0為True,0為Flase。使用關(guān)系或邏輯運(yùn)算符的表達(dá)式對(duì)Flase和Ture分別返回值0或1(見表2-6)。
表2-6給出于關(guān)系和邏輯運(yùn)算符,下面用1和0給出邏輯真值表。關(guān)系和邏輯運(yùn)算符的優(yōu)先級(jí)比算術(shù)運(yùn)算符低,即像表達(dá)式10>1 12的計(jì)算可以假定是對(duì)表達(dá)式10>(1 12)的計(jì)算,當(dāng)然,該表達(dá)式的結(jié)果為Flase。在一個(gè)表達(dá)式中允許運(yùn)算的組合。例如:
10>5&&!(10<9)||3<=4
這一表達(dá)式的結(jié)果為True。
。下表給出了關(guān)系和邏輯運(yùn)算符的相對(duì)優(yōu)先級(jí):
:!
!
>= <=
=== !=
=&&
最低||同算術(shù)表達(dá)式一樣,在關(guān)系或邏輯表達(dá)式中也使用括號(hào)來修改原計(jì)算順序。切記,所有關(guān)系和邏輯表達(dá)式產(chǎn)生的結(jié)果不是0就是1,所以下面的程序段不僅正確而且
將在屏幕上打印數(shù)值1。
int x;
;x=100;
;printf("%d",x>10);
C語言的內(nèi)部運(yùn)算符很豐富,運(yùn)算符是告訴編譯程序執(zhí)行特定算術(shù)或邏輯操作的符號(hào)。C語言有三大運(yùn)算符:算術(shù)、關(guān)系與邏輯、位操作。另外,C還有一些特殊的運(yùn)算符,用于完成一些特殊的任務(wù)。
2.6.1算術(shù)運(yùn)算符
表2-5列出了C語言中允許的算術(shù)運(yùn)算符。在C語言中,運(yùn)算符“ ”、“-”、“*”和“/”的用法與大多數(shù)計(jì)算機(jī)語言的相同,幾乎可用于所有C語言內(nèi)定義的數(shù)據(jù)類型。當(dāng)“/”被用于整數(shù)或字符時(shí),結(jié)果取整。例如,在整數(shù)除法中,10/3=3。
一元減法的實(shí)際效果等于用-1乘單個(gè)操作數(shù),即任何數(shù)值前放置減號(hào)將改變其符號(hào)。模運(yùn)算符“%”在C語言中也同它在其它語言中的用法相同。切記,模運(yùn)算取整數(shù)除法的余數(shù),所以“%”不能用于float和double類型。
最后一行打印一個(gè)0和一個(gè)1,因?yàn)?/2整除時(shí)為0,余數(shù)為1,故1%2取余數(shù)1。
2.6.2自增和自減
C語言中有兩個(gè)很有用的運(yùn)算符,通常在其它計(jì)算機(jī)語言中是找不到它們的—自增和自減運(yùn)算符, 和--。運(yùn)算符“ ”是操作數(shù)加1,而“--”是操作數(shù)減1,換句話說:x=x 1;同 x;x=x-1;同--x;
自增和自減運(yùn)算符可用在操作數(shù)之前,也可放在其后,例如:x=x 1;可寫成 x;或x ;但在表達(dá)式中這兩種用法是有區(qū)別的。自增或自減運(yùn)算符在操作數(shù)之前,C語言在引用操作數(shù)之前就先執(zhí)行加1或減1操作;運(yùn)算符在操作數(shù)之后,C語言就先引用操作數(shù)的值,而后再進(jìn)行加1或減1操作。請(qǐng)看下例:
x=10;
;y= x;
此時(shí),y=11。如果程序改為:
x=10;y=x ;
則y=10。在這兩種情況下,x都被置為11,但區(qū)別在于設(shè)置的時(shí)刻,這種對(duì)自增和自減發(fā)生時(shí)刻的控制是非常有用的。在大多數(shù)C編譯程序中,為自增和自減操作生成的程序代碼比等價(jià)的賦值語句生成的代碼
要快得多,所以盡可能采用加1或減1運(yùn)算符是一種好的選擇。
。下面是算術(shù)運(yùn)算符的優(yōu)先級(jí):
: 、-
--
-(一元減)
*、/、%最低 、-編譯程序?qū)ν?jí)運(yùn)算符按從左到右的順序進(jìn)行計(jì)算。當(dāng)然,括號(hào)可改變計(jì)算順序。C語言
處理括號(hào)的方法與幾乎所有的計(jì)算機(jī)語言相同:強(qiáng)迫某個(gè)運(yùn)算或某組運(yùn)算的優(yōu)先級(jí)升高。
2.6.3關(guān)系和邏輯運(yùn)算符
關(guān)系運(yùn)算符中的“關(guān)系”二字指的是一個(gè)值與另一個(gè)值之間的關(guān)系,邏輯運(yùn)算符中的“邏輯”二字指的是連接關(guān)系的方式。因?yàn)殛P(guān)系和邏輯運(yùn)算符常在一起使用,所以將它們放在一起討論。關(guān)系和邏輯運(yùn)算符概念中的關(guān)鍵是True(真)和Flase(假)。C語言中,非0為True,0為Flase。使用關(guān)系或邏輯運(yùn)算符的表達(dá)式對(duì)Flase和Ture分別返回值0或1(見表2-6)。
表2-6給出于關(guān)系和邏輯運(yùn)算符,下面用1和0給出邏輯真值表。關(guān)系和邏輯運(yùn)算符的優(yōu)先級(jí)比算術(shù)運(yùn)算符低,即像表達(dá)式10>1 12的計(jì)算可以假定是對(duì)表達(dá)式10>(1 12)的計(jì)算,當(dāng)然,該表達(dá)式的結(jié)果為Flase。在一個(gè)表達(dá)式中允許運(yùn)算的組合。例如:
10>5&&!(10<9)||3<=4
這一表達(dá)式的結(jié)果為True。
。下表給出了關(guān)系和邏輯運(yùn)算符的相對(duì)優(yōu)先級(jí):
:!
!
>= <=
=== !=
=&&
最低||同算術(shù)表達(dá)式一樣,在關(guān)系或邏輯表達(dá)式中也使用括號(hào)來修改原計(jì)算順序。切記,所有關(guān)系和邏輯表達(dá)式產(chǎn)生的結(jié)果不是0就是1,所以下面的程序段不僅正確而且
將在屏幕上打印數(shù)值1。
int x;
;x=100;
;printf("%d",x>10);

