官术网_书友最值得收藏!

2.6 算術(shù)運(yùn)算符與算術(shù)表達(dá)式

1.基本的算術(shù)運(yùn)算符

● +:加法運(yùn)算符或正值運(yùn)算符,如4+7、+3。

● -:減法運(yùn)算符或負(fù)值運(yùn)算符,如4-7、-3。

● *:乘法運(yùn)算符,如4*7。

● /:除法運(yùn)算符,如4/7。

●%:模運(yùn)算符,也稱求余運(yùn)算,要求%兩側(cè)均為整型數(shù)據(jù),如7%4的值為3。

需要注意的是,當(dāng)使用除法運(yùn)算符“/”時(shí),如果除數(shù)和被除數(shù)都是整型數(shù)據(jù),則運(yùn)算結(jié)果也是整型數(shù)據(jù),例如7/3的結(jié)果是2,1/2的結(jié)果為0。如果參加運(yùn)算的兩個(gè)數(shù)據(jù)中有一個(gè)是實(shí)型數(shù)據(jù),則運(yùn)算結(jié)果是double型數(shù)據(jù),因?yàn)樗袑?shí)型數(shù)據(jù)都按double型數(shù)據(jù)進(jìn)行運(yùn)算,所以1./2的結(jié)果為0.5。

模運(yùn)算符“%”的運(yùn)算結(jié)果為兩個(gè)整型運(yùn)算對象做除法運(yùn)算的余數(shù)。例如,7%3的結(jié)果為1。

使用運(yùn)算符時(shí),需要注意:

① 不允許兩個(gè)算術(shù)運(yùn)算符緊挨在一起,應(yīng)該使用括號將其隔開。例如,x/-y應(yīng)改為x/(-y)。

② 不能像數(shù)學(xué)算式那樣省略乘號,也不能用圓點(diǎn)“· ”代替乘號。例如,(x-y)(x+y)或(x-y)·(x+y)是錯(cuò)誤的,應(yīng)改為(x-y)*(x+y)。

2.算術(shù)表達(dá)式

單個(gè)運(yùn)算對象及用算術(shù)運(yùn)算符和括號將運(yùn)算對象連接起來的有意義的表達(dá)式都稱為算術(shù)表達(dá)式。其中,運(yùn)算對象包括常量、變量、函數(shù)等。例如,y、'c'、10、x1+y*z-a/23+'c'-100都是合法的算術(shù)表達(dá)式,其中,x1、y、z、a是已經(jīng)定義的變量(已經(jīng)聲明了類型,并且完成了賦值),'c'是字符型常量,10、23、100是整型常量。

在將數(shù)學(xué)算式寫成C語言表達(dá)式時(shí),對于一些有具體值的符號,如圓周率π 等,要使用該符號所代表的值,或者先定義一個(gè)符號常量代替該值,再使用該符號常量;而對于一些沒有具體值的符號,如α、β等,則要先定義一個(gè)標(biāo)識符,再使用該標(biāo)識符。

3.算術(shù)運(yùn)算符的優(yōu)先級與結(jié)合性

每個(gè)運(yùn)算符都有自己的優(yōu)先級和結(jié)合方向。如果一個(gè)運(yùn)算對象的兩邊有不同的運(yùn)算符,則先執(zhí)行優(yōu)先級高的。例如,乘、除的優(yōu)先級就高于加、減的優(yōu)先級。對于算術(shù)表達(dá)式,在優(yōu)先級相同的情況下,按自左向右的順序運(yùn)算。使用括號可以改變運(yùn)算順序,需要注意的是,表達(dá)式中只能使用圓括號,如果有必要,可以使用嵌套的圓括號,如3.5*(2+x/(a+b))。

基本算術(shù)運(yùn)算符的優(yōu)先級(由高到低)如圖2.10所示。

圖2.10 基本算術(shù)運(yùn)算符的優(yōu)先級

其中,+(正值運(yùn)算符)和-(負(fù)值運(yùn)算符)只有一個(gè)運(yùn)算對象,稱為單目運(yùn)算符,具有右結(jié)合性。*、/、%、+(加法運(yùn)算符)和-(減法運(yùn)算符)有兩個(gè)運(yùn)算對象,稱為雙目運(yùn)算符,具有左結(jié)合性。

4.自增、自減運(yùn)算符

“++”和“--”是自增、自減運(yùn)算符,它們的功能是使一個(gè)變量的值加1或減1,它們都是單目運(yùn)算符,而且其運(yùn)算對象只能是整型變量或指針變量。

“++”和“--”既可以放在作為運(yùn)算對象的變量之前,也可以放在變量之后。這樣,就形成了4種表達(dá)式:i++、i--、++i、--i。前兩個(gè)表達(dá)式是先使用i的值,然后再使i的值加、減1;后兩個(gè)表達(dá)式是先使i的值加、減1,然后再使用變量i的值。例如:

            int  m1,n1,m2,n2;
            int  i=1;
            int  j=1;
            m1=i++;
            n1=i;
            m2=++j;
            n2=j;

該程序片段運(yùn)行后,各變量的值為:m1=1,n1=2,m2=2,n2=2,i=2,j=2。

“++”和“--”的優(yōu)先級較高,高于所有的算術(shù)運(yùn)算符,并且具有右結(jié)合性。注意:“++”和“--”只能用于變量,不能用于常量或表達(dá)式。例如:

            ++10;
            (x+y)--;

都是錯(cuò)誤的。

如果把“++”、“--”運(yùn)算與其他運(yùn)算符組合在一起構(gòu)成表達(dá)式,就會比較讓人費(fèi)解,例如,表達(dá)式“a+++b--”代表什么含義呢?又是如何運(yùn)算的呢?下面的程序演示了該表達(dá)式的運(yùn)算結(jié)果:

            #include <stdio.h>
            void main()
            {   int a=3,b=5,c;
                c=a+++b--;
                printf("a=%d,b=%d,c=%d\n",a,b,c);
            }

因此,不建議讀者這么做。

主站蜘蛛池模板: 赣榆县| 龙山县| 乌拉特中旗| 遵义市| 公主岭市| 汽车| 当涂县| 泰宁县| 临沂市| 瑞昌市| 买车| 冀州市| 庄河市| 兴山县| 海丰县| 泰兴市| 南京市| 万盛区| 读书| 青阳县| 横山县| 淳化县| 诏安县| 渝北区| 牟定县| 大英县| 铁力市| 滨海县| 红安县| 武城县| 涞源县| 西吉县| 马公市| 孟津县| 河池市| 中西区| 绥江县| 鄂尔多斯市| 武穴市| 北宁市| 宜兴市|