版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計
運算符與表達式3.1運算符和表達式概述 3.2算術(shù)運算符和算術(shù)表達式 3.3賦值運算符和賦值表達式3.4關(guān)系運算和邏輯運算 3.5位運算符 3.6條件運算符和條件表達式 3.7其他運算符 3.8表達式的求值規(guī)則
3.1運算符和表達式概述1.運算符,C語言的運算符有以下幾類。算術(shù)運算符。加(+)、減(-)、乘(*)、除(/)、求余(%)五種。關(guān)系運算符。>、<、==、>=、<=和不等于(!=)六種。邏輯運算符。包括與(&&)、或(||)、非(!)三種。賦值運算符。簡單賦值(=)、復合賦值(+=、-=、*=、/=、%=)六種。
條件運算符,用于條件求值(?:),這是一個三目運算符。逗號運算符,用于把若干表達式組合成一個表達式(,,,)。指針運算符,用于取內(nèi)容(*)和取地址(&)二種運算。求字節(jié)數(shù)運算符(sizeof)強制類型轉(zhuǎn)換運算符(類型)分量運算符(.→)下標運算符([])2.表達式用運算符和括號將運算對象(常量、變量和函數(shù))連接起來的、符合C語言語法規(guī)則的式子,稱為表達式。賦值表達式,如:a=1算術(shù)表達式,如:1*2+3/4.5關(guān)系表達式,如:5>9邏輯表達式,如:8>4&&a<b條件表達式,如:a>b?a:b逗號表達式,如:a=1,b=2,c=33.運算符的優(yōu)先級與結(jié)合性運算符的優(yōu)先級別就是運算對象(或稱操作數(shù))兩側(cè)運算符執(zhí)行的先后順序。C語言運算符的結(jié)合方向,就是指當一個運算對象兩側(cè)的運算符具有相同的優(yōu)先級別時,該運算對象是先與左邊的運算符結(jié)合,還是先與右邊的運算符結(jié)合。自左至右的結(jié)合方向,稱為左結(jié)合性。反之,稱為右結(jié)合性。3.2算術(shù)運算符和算術(shù)表達式例3-3取余運算。#include<stdio.h>voidmain(){printf("%d\n",100%6);}雙目運算,具有左結(jié)合性。求余運算符%要求參與運算的量均為整型。例3-3輸出100除以6所得的余數(shù)4。2.算數(shù)運算符的優(yōu)先級與結(jié)合性在表達式求值時,先按運算符的優(yōu)先級別高低次序執(zhí)行,例如,先乘除取余后加減。如表達式a-b*c,b的左側(cè)為減號,因此相當于a-(b*c)。如果在一個運算符對象兩側(cè)的運算符的優(yōu)先級別相同,如a-b+c則按規(guī)定的”結(jié)合方向”處理.算術(shù)運算符的結(jié)合方向是“自左至石”,是左結(jié)合性。如在執(zhí)行“a-b+c”時,減號和加號運算的優(yōu)先級別相同,變量b先與左邊的減號結(jié)合,執(zhí)行“a-b”;然用再執(zhí)行右側(cè)加c的運算。3.數(shù)據(jù)類型轉(zhuǎn)換整型、實型和字符型數(shù)據(jù)間可以混合運算。一個運算符兩側(cè)的操作數(shù)的數(shù)據(jù)類型不同,則系統(tǒng)按“先轉(zhuǎn)換、后運算”的原則,先將數(shù)據(jù)自動轉(zhuǎn)換成同一類型,然后進行運算。因此,整型、字符型、實型數(shù)據(jù)可以出現(xiàn)在一個表達式中進行混合運算。如:已定義i為int變量,f為float型變量,d為double型變量,l為long型變量,有下面式子:100+’A’+i*f-d*l在進行運算時,不同類型的數(shù)據(jù)要先轉(zhuǎn)換成同一類型,然后進行運算,轉(zhuǎn)換的規(guī)則如圖3-1所示。(1)隱式轉(zhuǎn)換①整型提升,整型、浮點型可以混合運算。整型自動轉(zhuǎn)換遵循以下規(guī)則:若參與運算的量類型不同,則先轉(zhuǎn)換成同一類型,然后進行運算;②算數(shù)轉(zhuǎn)換,所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表達式,也要先轉(zhuǎn)換成double型,橫向自動轉(zhuǎn)換后再作運算。(2)強制類型轉(zhuǎn)換其一般形式為:(類型說明符)(表達式)其功能是把表達式的運算結(jié)果強制轉(zhuǎn)換成類型說明符所表示的類型。例如:(float)a把a轉(zhuǎn)換為實型、(int)(x+y)把x+y的結(jié)果轉(zhuǎn)換為整型。3.數(shù)據(jù)類型轉(zhuǎn)換例3-4數(shù)據(jù)類型強制轉(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.自增和自減運算兩個特殊的算術(shù)運算符,即自增、自減運算符(++和--)。
整型變量i,可有以下幾種形式:++i的功能是i自增1后再參與其它運算。--i的功能是i自減1后再參與其它運算。i++i參與運算后,i的值再自增1。i--i參與運算后,i的值再自減1。
自加自減運算符的結(jié)合性是自右向左的。
例3-5自加、自減運算符。#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賦值運算符和賦值表達式
賦值運算符有“=”、“+=”、“-=”、“*=”、“/=”和“%=”等。
用賦值運算符將運算對象連接而成的表達式稱為賦值表達式。1.簡單賦值運算符將“=”右邊表達式的值賦給左邊的變量。例如:a=8;s=a*2+b;先計算出右邊表達式的值,再賦給左邊的變量。如果“=”左右兩邊類型不同,系統(tǒng)會按照賦值類型轉(zhuǎn)換的原則將右邊的類型轉(zhuǎn)換成左邊的類型。運算符應用舉例等價形式+=a+=xa=a+(x)-=a-=xa=a-(x)*=a*=xa=a*(x)/=a/=xa=a/(x)%=a%=xa=a%(x)2.復合賦值運算符在簡單賦值運算符前面加上算術(shù)運算符就構(gòu)成復合算術(shù)賦值運算符,如下表所示:3.賦值表達式
由賦值運算符將一個變量和一個表達式連接起來的式子所組成。一般形式為:
變量=表達式賦值表達式:v=4.0*PI*r*r*r/3.0a=15+(i=6)b=(x=3)+(y=4)
賦值表達式的執(zhí)行過程是:
(1)計算賦值運算符右側(cè)表達式的值;
(2)將所計算出的值賦給賦值運算符左側(cè)的變量。3.4關(guān)系運算和邏輯運算
例3-6運算符綜合應用。運行輸出: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ōu)先級別是:?。ǚ牵?&(與)→||(或)例3-7邏輯運算符。#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);}運行:i=7,m=1,n=13.5位運算符 3.5位運算符 3.6條件運算符和條件表達式 1.條件運算符條件運算符由兩個符號“?”和“:”組成,用于條件求值。條件運算符的優(yōu)先級低于邏輯運算符、高于賦值運算符,它是右結(jié)合的。2.條件表達式其一般形式為:表達式1?表達式2:表達式3條件表達式的執(zhí)行順序:
若表達式1的值為“真”,則條件表達式的值為表達式2,否則,條件表達式的值為表達式3例3-8運算符應用。#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);}運行:(1)2(2)0BBa=4,b=2,c=33.7其他運算符 1.逗號運算符
其一般形式為:表達式1,表達式2,…表達式n其求值過程是分別求兩個表達式的值,并以表達式n的值作為整個逗號表達式的值。“,”運算符用于將多個表達式串在一起,“,”運算符的左邊值總不返回,最右邊表達式的值才是整個表達式的值。2.sizeof運算符sizeof運算符是一個單目運算符,它返回變量或類型的字節(jié)長度。不同系統(tǒng)定義不同的字節(jié)長度,所以不同系統(tǒng)會得到不同結(jié)果。例如:sizeof(d
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 信息技術(shù)課標的心得體會(8篇)
- 俄語專業(yè)生求職信
- 企業(yè)停電停水的應急預案范文(7篇)
- 中秋佳節(jié)致辭(8篇)
- 設(shè)計課件網(wǎng)站教學課件
- 諺語講解課件教學課件
- 盲目從眾課件教學課件
- 天桃實驗學校八年級上學期語文1月月考試卷
- 環(huán)境應急預案的編寫要點
- 自建房屋建筑施工合同(2篇)
- 外貿(mào)業(yè)務員個人業(yè)務工作總結(jié)述職報告模板課件
- 《高空拋物行為的侵權(quán)責任(論文)8000字》
- 分子標記及其在植物遺傳育種中的應用課件
- 二年級數(shù)學22-分物游戲-優(yōu)秀課件
- 猴痘診療指南(2022年版)PPT
- 駐外人員補助標準
- 危大工程巡視檢查記錄
- 《科學社會主義的理論與實踐》課件
- ACS患者隨訪管理表1-3-16
- 經(jīng)典誦讀《滿江紅》課件
- 工業(yè)X射線探傷室設(shè)計簡述
評論
0/150
提交評論