C語(yǔ)言程序設(shè)計(jì)課件:運(yùn)算符與表達(dá)式_第1頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件:運(yùn)算符與表達(dá)式_第2頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件:運(yùn)算符與表達(dá)式_第3頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件:運(yùn)算符與表達(dá)式_第4頁(yè)
C語(yǔ)言程序設(shè)計(jì)課件:運(yùn)算符與表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩19頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

C語(yǔ)言程序設(shè)計(jì)

運(yùn)算符與表達(dá)式3.1運(yùn)算符和表達(dá)式概述 3.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式 3.3賦值運(yùn)算符和賦值表達(dá)式3.4關(guān)系運(yùn)算和邏輯運(yùn)算 3.5位運(yùn)算符 3.6條件運(yùn)算符和條件表達(dá)式 3.7其他運(yùn)算符 3.8表達(dá)式的求值規(guī)則

3.1運(yùn)算符和表達(dá)式概述1.運(yùn)算符,C語(yǔ)言的運(yùn)算符有以下幾類。算術(shù)運(yùn)算符。加(+)、減(-)、乘(*)、除(/)、求余(%)五種。關(guān)系運(yùn)算符。>、<、==、>=、<=和不等于(!=)六種。邏輯運(yùn)算符。包括與(&&)、或(||)、非(!)三種。賦值運(yùn)算符。簡(jiǎn)單賦值(=)、復(fù)合賦值(+=、-=、*=、/=、%=)六種。

條件運(yùn)算符,用于條件求值(?:),這是一個(gè)三目運(yùn)算符。逗號(hào)運(yùn)算符,用于把若干表達(dá)式組合成一個(gè)表達(dá)式(,,,)。指針運(yùn)算符,用于取內(nèi)容(*)和取地址(&)二種運(yùn)算。求字節(jié)數(shù)運(yùn)算符(sizeof)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型)分量運(yùn)算符(.→)下標(biāo)運(yùn)算符([])2.表達(dá)式用運(yùn)算符和括號(hào)將運(yùn)算對(duì)象(常量、變量和函數(shù))連接起來(lái)的、符合C語(yǔ)言語(yǔ)法規(guī)則的式子,稱為表達(dá)式。賦值表達(dá)式,如:a=1算術(shù)表達(dá)式,如:1*2+3/4.5關(guān)系表達(dá)式,如:5>9邏輯表達(dá)式,如:8>4&&a<b條件表達(dá)式,如:a>b?a:b逗號(hào)表達(dá)式,如:a=1,b=2,c=33.運(yùn)算符的優(yōu)先級(jí)與結(jié)合性運(yùn)算符的優(yōu)先級(jí)別就是運(yùn)算對(duì)象(或稱操作數(shù))兩側(cè)運(yùn)算符執(zhí)行的先后順序。C語(yǔ)言運(yùn)算符的結(jié)合方向,就是指當(dāng)一個(gè)運(yùn)算對(duì)象兩側(cè)的運(yùn)算符具有相同的優(yōu)先級(jí)別時(shí),該運(yùn)算對(duì)象是先與左邊的運(yùn)算符結(jié)合,還是先與右邊的運(yùn)算符結(jié)合。自左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。3.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式例3-3取余運(yùn)算。#include<stdio.h>voidmain(){printf("%d\n",100%6);}雙目運(yùn)算,具有左結(jié)合性。求余運(yùn)算符%要求參與運(yùn)算的量均為整型。例3-3輸出100除以6所得的余數(shù)4。2.算數(shù)運(yùn)算符的優(yōu)先級(jí)與結(jié)合性在表達(dá)式求值時(shí),先按運(yùn)算符的優(yōu)先級(jí)別高低次序執(zhí)行,例如,先乘除取余后加減。如表達(dá)式a-b*c,b的左側(cè)為減號(hào),因此相當(dāng)于a-(b*c)。如果在一個(gè)運(yùn)算符對(duì)象兩側(cè)的運(yùn)算符的優(yōu)先級(jí)別相同,如a-b+c則按規(guī)定的”結(jié)合方向”處理.算術(shù)運(yùn)算符的結(jié)合方向是“自左至石”,是左結(jié)合性。如在執(zhí)行“a-b+c”時(shí),減號(hào)和加號(hào)運(yùn)算的優(yōu)先級(jí)別相同,變量b先與左邊的減號(hào)結(jié)合,執(zhí)行“a-b”;然用再執(zhí)行右側(cè)加c的運(yùn)算。3.數(shù)據(jù)類型轉(zhuǎn)換整型、實(shí)型和字符型數(shù)據(jù)間可以混合運(yùn)算。一個(gè)運(yùn)算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)按“先轉(zhuǎn)換、后運(yùn)算”的原則,先將數(shù)據(jù)自動(dòng)轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算。因此,整型、字符型、實(shí)型數(shù)據(jù)可以出現(xiàn)在一個(gè)表達(dá)式中進(jìn)行混合運(yùn)算。如:已定義i為int變量,f為float型變量,d為double型變量,l為long型變量,有下面式子:100+’A’+i*f-d*l在進(jìn)行運(yùn)算時(shí),不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算,轉(zhuǎn)換的規(guī)則如圖3-1所示。(1)隱式轉(zhuǎn)換①整型提升,整型、浮點(diǎn)型可以混合運(yùn)算。整型自動(dòng)轉(zhuǎn)換遵循以下規(guī)則:若參與運(yùn)算的量類型不同,則先轉(zhuǎn)換成同一類型,然后進(jìn)行運(yùn)算;②算數(shù)轉(zhuǎn)換,所有的浮點(diǎn)運(yùn)算都是以雙精度進(jìn)行的,即使僅含float單精度量運(yùn)算的表達(dá)式,也要先轉(zhuǎn)換成double型,橫向自動(dòng)轉(zhuǎn)換后再作運(yùn)算。(2)強(qiáng)制類型轉(zhuǎn)換其一般形式為:(類型說(shuō)明符)(表達(dá)式)其功能是把表達(dá)式的運(yùn)算結(jié)果強(qiáng)制轉(zhuǎn)換成類型說(shuō)明符所表示的類型。例如:(float)a把a(bǔ)轉(zhuǎn)換為實(shí)型、(int)(x+y)把x+y的結(jié)果轉(zhuǎn)換為整型。3.數(shù)據(jù)類型轉(zhuǎn)換例3-4數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換。#include<stdio.h>voidmain(){floatx;inti;x=3.6;i=(int)x;printf(“x=%f,i=%d”,x,i);}結(jié)果:x=3.600000,i=34.自增和自減運(yùn)算兩個(gè)特殊的算術(shù)運(yùn)算符,即自增、自減運(yùn)算符(++和--)。

整型變量i,可有以下幾種形式:++i的功能是i自增1后再參與其它運(yùn)算。--i的功能是i自減1后再參與其它運(yùn)算。i++i參與運(yùn)算后,i的值再自增1。i--i參與運(yùn)算后,i的值再自減1。

自加自減運(yùn)算符的結(jié)合性是自右向左的。

例3-5自加、自減運(yùn)算符。#include<stdio.h>voidmain(){inti=5,j=5,p,q;p=(i++)+(i++)+(i++);q=(++j)+(++j)+(++j);printf("%d,%d,%d,%d",p,q,i,j);}3.3賦值運(yùn)算符和賦值表達(dá)式

賦值運(yùn)算符有“=”、“+=”、“-=”、“*=”、“/=”和“%=”等。

用賦值運(yùn)算符將運(yùn)算對(duì)象連接而成的表達(dá)式稱為賦值表達(dá)式。1.簡(jiǎn)單賦值運(yùn)算符將“=”右邊表達(dá)式的值賦給左邊的變量。例如:a=8;s=a*2+b;先計(jì)算出右邊表達(dá)式的值,再賦給左邊的變量。如果“=”左右兩邊類型不同,系統(tǒng)會(huì)按照賦值類型轉(zhuǎn)換的原則將右邊的類型轉(zhuǎn)換成左邊的類型。運(yùn)算符應(yīng)用舉例等價(jià)形式+=a+=xa=a+(x)-=a-=xa=a-(x)*=a*=xa=a*(x)/=a/=xa=a/(x)%=a%=xa=a%(x)2.復(fù)合賦值運(yùn)算符在簡(jiǎn)單賦值運(yùn)算符前面加上算術(shù)運(yùn)算符就構(gòu)成復(fù)合算術(shù)賦值運(yùn)算符,如下表所示:3.賦值表達(dá)式

由賦值運(yùn)算符將一個(gè)變量和一個(gè)表達(dá)式連接起來(lái)的式子所組成。一般形式為:

變量=表達(dá)式賦值表達(dá)式:v=4.0*PI*r*r*r/3.0a=15+(i=6)b=(x=3)+(y=4)

賦值表達(dá)式的執(zhí)行過(guò)程是:

(1)計(jì)算賦值運(yùn)算符右側(cè)表達(dá)式的值;

(2)將所計(jì)算出的值賦給賦值運(yùn)算符左側(cè)的變量。3.4關(guān)系運(yùn)算和邏輯運(yùn)算

例3-6運(yùn)算符綜合應(yīng)用。運(yùn)行輸出:a=1,b=10,c=10a==(…):0a=1,b=20,c=11a=0,b=22,c=12#include<stdio.h>voidmain(){inta,b,c;a=b=c=10;a=b==c;printf(″a=%d,b=%d,c=%d\n″,a,b,c);printf(″a==(…):%d\n″,a==(b=c++*2));printf(″a=%d,b=%d,c=%d\n″,a,b,c);a=b++>=++b>c++;printf(″a=%d,b=%d,c=%d\n″,a,b,c);}2.邏輯運(yùn)算符

邏輯非“!”、邏輯與“&&”、邏輯或“||”。優(yōu)先級(jí)別是:?。ǚ牵?&(與)→||(或)例3-7邏輯運(yùn)算符。#include<stdio.h>voidmain(){inti=7,m,n;m=!!i;n=(3<i<6);printf(″i=%d,m=%d,n=%d\n″,i,m,n);}運(yùn)行:i=7,m=1,n=13.5位運(yùn)算符 3.5位運(yùn)算符 3.6條件運(yùn)算符和條件表達(dá)式 1.條件運(yùn)算符條件運(yùn)算符由兩個(gè)符號(hào)“?”和“:”組成,用于條件求值。條件運(yùn)算符的優(yōu)先級(jí)低于邏輯運(yùn)算符、高于賦值運(yùn)算符,它是右結(jié)合的。2.條件表達(dá)式其一般形式為:表達(dá)式1?表達(dá)式2:表達(dá)式3條件表達(dá)式的執(zhí)行順序:

若表達(dá)式1的值為“真”,則條件表達(dá)式的值為表達(dá)式2,否則,條件表達(dá)式的值為表達(dá)式3例3-8運(yùn)算符應(yīng)用。#include<stdio.h>voidmain(){inta,b,c;a=b=c=1;a+=b;b+=c;c+=a;printf(″(1)%d\n″,a++>b?a:b);printf(″(2)%d\n″,a>b?c>a++:b-->a?c++:c--);(a>=b>=c)?printf(″AA\n″):printf(″BB\n″);printf(″a=%d,b=%d,c=%d\n″,a,b,c);}運(yùn)行:(1)2(2)0BBa=4,b=2,c=33.7其他運(yùn)算符 1.逗號(hào)運(yùn)算符

其一般形式為:表達(dá)式1,表達(dá)式2,…表達(dá)式n其求值過(guò)程是分別求兩個(gè)表達(dá)式的值,并以表達(dá)式n的值作為整個(gè)逗號(hào)表達(dá)式的值?!?”運(yùn)算符用于將多個(gè)表達(dá)式串在一起,“,”運(yùn)算符的左邊值總不返回,最右邊表達(dá)式的值才是整個(gè)表達(dá)式的值。2.sizeof運(yùn)算符sizeof運(yùn)算符是一個(gè)單目運(yùn)算符,它返回變量或類型的字節(jié)長(zhǎng)度。不同系統(tǒng)定義不同的字節(jié)長(zhǎng)度,所以不同系統(tǒng)會(huì)得到不同結(jié)果。例如:sizeof(d

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論