當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > C語言:算術(shù)表達(dá)式
C語言算術(shù)表達(dá)式與數(shù)學(xué)中相似,是由數(shù)字和運(yùn)算符號組成的式子,可以簡單清晰地記錄或描述計(jì)算過程和內(nèi)容。
我們把算術(shù)運(yùn)算符與數(shù)據(jù)結(jié)合得到的式子叫做算術(shù)表達(dá)式,把有賦值號的式子叫賦值表達(dá)式,把逗號運(yùn)算符表示的式子叫逗號表達(dá)式。
C語言中的算術(shù)運(yùn)算符包括:+、-、*、/、%。它們都是雙目運(yùn)算符,即運(yùn)算對象有兩個(gè)。使用時(shí)需要注意以下幾點(diǎn):
1、乘號*在C語言中不可省略,即a*b。
2、%為取余數(shù),它的運(yùn)算對象只能是整型。
3、運(yùn)算符在計(jì)算時(shí)如果運(yùn)算符兩邊的數(shù)據(jù)類型相同,則得到的數(shù)據(jù)也是這個(gè)類型,例如:1/2=0。因?yàn)?,2都是整型,則結(jié)果也是整型。
4、如果運(yùn)算符左右兩邊的數(shù)據(jù)類型不同時(shí),要往精確度更高的類型轉(zhuǎn)換,例如:1.0/2=0.5,因?yàn)?.0是浮點(diǎn)型,2是整型,浮點(diǎn)型的精度比整型精度高,所以要把整型自動轉(zhuǎn)為浮點(diǎn)型。即2變?yōu)?.0,然后式子變?yōu)?.0/2.0,式子左右兩邊類型相同,都為浮點(diǎn)型,結(jié)果也為浮點(diǎn)型。具體的轉(zhuǎn)換規(guī)則可以認(rèn)為往取值范圍更高的那方轉(zhuǎn)換。即:char > short > unsigned short > int > unsigned int > float > double。
5、算術(shù)表達(dá)式?jīng)]有改變或保存表達(dá)式的值。例如:a+b。這是一個(gè)算術(shù)表達(dá)式,它只表示將a與b兩個(gè)數(shù)相加,但是需要注意a與b的值都沒有改變,而且它們的和值也沒有保存下來。這是很容易出現(xiàn)的一種錯(cuò)誤。例如:a=(b++,c=c+2,a+b,b+c) 這個(gè)表達(dá)式先算b++,即b自加1。然后算c=c+2,c的值改變。然后a+b,這一步不涉及到賦值運(yùn)算,所以a與b的值都不變。然后b+c,這一步是逗號表達(dá)式的最后一個(gè)式子,我們經(jīng)過計(jì)算是將這個(gè)式子的值賦值給a,計(jì)算時(shí)用到的b是第一個(gè)式子的結(jié)果,用到的c是第二個(gè)式子運(yùn)行的結(jié)果,第三個(gè)式子并沒有改變?nèi)魏螖?shù)值。
6、算術(shù)運(yùn)算符的優(yōu)先級在眾多的運(yùn)算符中僅次于()與單目運(yùn)算符。其中*、/、%的優(yōu)先級比+、-的優(yōu)先級高一級。
7、算術(shù)運(yùn)算符的結(jié)合性為自左向右。例:a+b+c-d 是先算a+b在加c在減d,運(yùn)算順序是自左向右的。
算術(shù)運(yùn)算符雖然只是一個(gè)由算術(shù)運(yùn)算符與數(shù)據(jù)結(jié)合的式子,但是它在實(shí)際應(yīng)用中需要注意的問題有很多,這需要我們通過大量的練習(xí)最終總結(jié)出一些規(guī)律。