- C程序設(shè)計(jì)語言
- 魏東平 朱連章 于廣斌編著
- 1318字
- 2018-12-29 14:37:35
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); }
因此,不建議讀者這么做。
- 2020年翻譯碩士(MTI)211翻譯碩士英語高分范文100篇
- Visual Basic程序設(shè)計(jì)基礎(chǔ)
- 2020年考研英語(二)過關(guān)必做800題
- 建筑工程測量
- 計(jì)算機(jī)系統(tǒng)導(dǎo)論(第2版)
- 遺產(chǎn)傳承視域下的古村張家塔
- 新能源汽車技術(shù)(第2版)
- 中國政法大學(xué)811刑事訴訟法學(xué)歷年考研真題視頻講解【16小時(shí)高清視頻】
- 陳琦、劉儒德《當(dāng)代教育心理學(xué)》(第2版)筆記和課后習(xí)題(含考研真題)詳解
- 地方綜合性大學(xué)地理科學(xué)專業(yè)教師教育實(shí)踐指導(dǎo)
- 財(cái)經(jīng)應(yīng)用文寫作
- 數(shù)據(jù)分析與可視化
- 消費(fèi)者行為學(xué)
- 金融學(xué)(第二版)
- 建筑施工技術(shù)