版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第2講
數(shù)據(jù)類型、運(yùn)算符和表達(dá)式1計(jì)算機(jī)中的信息計(jì)算機(jī)中的信息雖然種類繁多,形式多樣。但是在處理時(shí)都可以表達(dá)為數(shù)據(jù)的形式。這里的數(shù)據(jù)不僅包括我們熟知的數(shù)學(xué)運(yùn)算中的數(shù)據(jù),還包括聲音、圖像等復(fù)雜信息。數(shù)據(jù)在計(jì)算機(jī)中進(jìn)行處理時(shí),首先必須解決的問題是數(shù)據(jù)在存儲器里的存儲問題:由于計(jì)算機(jī)的內(nèi)存大小有限,怎樣存儲更加節(jié)約存儲空間?怎樣存儲便于數(shù)據(jù)的管理,例如查找、排序、統(tǒng)計(jì)等。結(jié)論:計(jì)算機(jī)中的數(shù)據(jù)按照類型進(jìn)行存儲引出“數(shù)據(jù)類型”的概念2引例假設(shè)要記錄一個(gè)人的詳細(xì)資料。具體內(nèi)容如下:姓名:michal性別:男年齡:30工資:2004.86工作單位:人民郵電出版社發(fā)行部3假如現(xiàn)在分別用不同的數(shù)據(jù)來表示上述個(gè)人資料中的基本信息。姓名:字符類型數(shù)據(jù)性別:只有“男”和“女”兩種選擇年齡:都為整數(shù),而且一般不會超過100工資:實(shí)數(shù)工作單位:內(nèi)容豐富結(jié)論:不同的數(shù)據(jù)信息在表達(dá)時(shí)具有不同的特點(diǎn)4劃分?jǐn)?shù)據(jù)類型的必要性劃分?jǐn)?shù)據(jù)類型的意義:劃分?jǐn)?shù)據(jù)類型有利于數(shù)據(jù)的管理劃分?jǐn)?shù)據(jù)類型有利于有效利用計(jì)算機(jī)有限的內(nèi)存空間在C程序中:每一個(gè)數(shù)據(jù)都被賦予一個(gè)確定的數(shù)據(jù)類型。不同的數(shù)據(jù)類型的數(shù)據(jù)在存儲時(shí)占有不同長度的內(nèi)存空間。注意:C程序中的每一個(gè)數(shù)據(jù)都必須有一個(gè)確定的數(shù)據(jù)類型。5基本數(shù)據(jù)類型數(shù)據(jù)類型的分類基本數(shù)據(jù)類型復(fù)雜數(shù)據(jù)類型幾種常用的基本數(shù)據(jù)類型:char,字符型:占有一個(gè)字節(jié)的長度,主要用來描述符號類型的數(shù)據(jù)。int,整型數(shù):占有4個(gè)字節(jié)的長度,一般用來描述整數(shù)類型的數(shù)據(jù)float,單精度浮點(diǎn)型實(shí)數(shù):占有4個(gè)字節(jié)的長度,一般用來表示帶有小數(shù)的實(shí)數(shù)。double,雙精度浮點(diǎn)型實(shí)數(shù):占有8個(gè)字節(jié)的長度,一般用來表示精度較高的實(shí)數(shù)6總結(jié)回到前例,下面分析幾種數(shù)據(jù)在表達(dá)上的特點(diǎn):姓名:工作單位:可以使用字符型數(shù)據(jù)char來表示年齡:可以使用整型數(shù)據(jù)int來表示工資:可以使用單精度實(shí)數(shù)float來表示。在C語言程序中,每一個(gè)數(shù)據(jù)都應(yīng)該具有特定的類型。7常量常量的概念常量就是在程序運(yùn)行過程中其數(shù)值不會發(fā)生改變的量。符號常量的使用定義:#define常量名稱常量值例如:#definePI3.14159用途:便于程序的調(diào)試#defineA5…………..A………..A………………….A…….……………..A….A………..8提示:一般來說,在C程序中符號常量通常使用大寫字母表示,以便區(qū)別于變量。特殊的字符常量:轉(zhuǎn)義字符\n:回車換行\(zhòng)a:警鈴聲\t:水平制表
\V:豎直制表\\:反斜杠“\”\‘:單引號“’”9變量變量的概念在程序中其值可以發(fā)生改變的量。注意:一個(gè)變量在某一時(shí)刻只有一個(gè)確定的數(shù)值,一個(gè)變量在獲得新值時(shí)原值將不復(fù)存在。變量的定義格式:數(shù)據(jù)類型變量名(=初始值)例如:inti=5對變量名的要求變量名主要由英文字母和數(shù)字構(gòu)成。C程序中的變量名區(qū)分大小寫變量名中不允許包含“;”、“?!薄ⅰ埃?、“-”以及“:”等符號。但可以使用下劃線“_”。實(shí)際應(yīng)用中,建議盡量使用具有實(shí)際意義的英文單詞作為變量名,盡量做到“見名知義”不要使用系統(tǒng)關(guān)鍵字作為變量名10定義變量的實(shí)質(zhì)變量的操作讀(?。懀ù妫┒x一種數(shù)據(jù)類型的變量的實(shí)質(zhì),就是在內(nèi)存中為該變量分配一定大小的存儲空間。此時(shí)變量名作為該存儲空間的標(biāo)識。當(dāng)程序?qū)υ撟兞窟M(jìn)行運(yùn)算時(shí),都要訪問該變量對應(yīng)的存儲空間以進(jìn)行數(shù)據(jù)讀寫任何變量在使用前必須定義。在程序中使用未經(jīng)定義的變量是不合法的11變量的值任何變量必須具有確定的數(shù)值才能參加運(yùn)算和操作。否則將會引發(fā)潛在的錯(cuò)誤??梢栽谧兞慷x的同時(shí)為其賦初值:
intage=10;也可以在定義變量后再為其賦初值
intage;
age=10;/*此處的“=”為賦值運(yùn)算符還可以同時(shí)定義多個(gè)變量并為其賦初值:
Inta=6,b=3,c=7;12整型變量數(shù)據(jù)在內(nèi)存中的存放形式二進(jìn)制補(bǔ)碼整型變量分類基本整型int4字節(jié)短整型shortint2字節(jié)長整型longint4字節(jié)有符號[signed]int
無符號unsignedint3.整型變量的定義13實(shí)型變量實(shí)型變量的存放形式實(shí)型變量的分類
floatdoublelongdouble實(shí)型變量的定義14字符型變量字符變量用來存放字符型數(shù)據(jù)。但是在一個(gè)字符變量中只能存放一個(gè)字符。字符變量的賦值
charletter=‘a(chǎn)’/*注意加單引號*/字符變量的存儲字符變量在存儲時(shí),在其相對應(yīng)的存儲單元中并非存儲字符本身,而是將其對應(yīng)的ASCII代碼(一個(gè)整數(shù)值)保存在內(nèi)存空間中。字符串使用雙引號包括起來的字符序列:“CProgram”15數(shù)據(jù)的表示Bit(位):一個(gè)bit存儲一個(gè)二進(jìn)制位(0或1)字節(jié):8個(gè)bit作為一個(gè)字節(jié),是計(jì)算機(jī)中為數(shù)據(jù)分配內(nèi)存空間的單位。例如:char數(shù)據(jù)類型數(shù)據(jù):1字節(jié);int類型數(shù)據(jù):4字節(jié)一個(gè)數(shù)據(jù)被分配的存儲空間越大,能容納的信息量越大,越容易表達(dá)更加復(fù)雜的信息。數(shù)據(jù)在內(nèi)存中都以二進(jìn)制的形式表示10011011高位低位16運(yùn)算符和表達(dá)式運(yùn)算:對數(shù)據(jù)進(jìn)行加工處理的過程。運(yùn)算量:參與運(yùn)算的數(shù)據(jù)。運(yùn)算符:記錄不同種類運(yùn)算的符號。表達(dá)式:用運(yùn)算符把運(yùn)算量連接起來的式子。運(yùn)算的類型單目運(yùn)算:單個(gè)運(yùn)算量參與的運(yùn)算。雙目運(yùn)算:兩個(gè)運(yùn)算量參與的運(yùn)算。三目運(yùn)算:三個(gè)運(yùn)算量參與的運(yùn)算。在C語言中只有一個(gè)三目運(yùn)算。17C語言中的運(yùn)算符C語言具有豐富的運(yùn)算符C語言中的運(yùn)算符被分為不同的類型任何表達(dá)式都有一個(gè)確定的值算術(shù)運(yùn)算符:用于實(shí)現(xiàn)簡單的數(shù)學(xué)運(yùn)算,一般為雙目運(yùn)算:+(加)、—(減)、*(乘)/:除法(整除)2/4=0;7/3=2;7/3.0=2.3%:取余運(yùn)算:2%4=2;7%3=1算術(shù)表達(dá)式:(a+8*6.5/6)%b18關(guān)系運(yùn)算符關(guān)系運(yùn)算符用來比較兩個(gè)數(shù)據(jù)的大小,為雙目運(yùn)算。關(guān)系運(yùn)算可以歸納為“大于(或等于)”、“小于(或等于)”關(guān)系運(yùn)算的結(jié)果是關(guān)系成立(結(jié)果為真)或不成立(結(jié)果為假)關(guān)系運(yùn)算符:<,>,>=,<=,特別注意:==:判斷相等?。剑号袛嗖坏龋剑嘿x值運(yùn)算符19關(guān)系表達(dá)式已知:inta=2;doublef=3.0;charc=‘a(chǎn)’(f/3)>(a-c)1.0-95成立,結(jié)果為1(a+2)!=(c-93)44不成立,結(jié)果為0(c%a)>(a/2)11不成立,結(jié)果為0關(guān)系表達(dá)式的結(jié)果不是1(真)就是0(假):當(dāng)關(guān)系表達(dá)式所表示的關(guān)系成立時(shí),其結(jié)果為1;當(dāng)關(guān)系表達(dá)式所表示的關(guān)系不成立時(shí),其結(jié)果為020邏輯運(yùn)算符邏輯運(yùn)算符用來對關(guān)系式或邏輯量進(jìn)行邏輯運(yùn)算。邏輯運(yùn)算的結(jié)果也僅有兩種:真(1)和假(0)在C語言中使用整數(shù)0來表示邏輯假,同時(shí),使用非零值(只要不是0的正數(shù)和負(fù)數(shù))來代表邏輯真21“與”邏輯運(yùn)算符&&是一種雙目運(yùn)算將“與”邏輯運(yùn)算符&&插入兩個(gè)運(yùn)算量之間組成邏輯表達(dá)式。組成表達(dá)式的運(yùn)算量可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式以及邏輯表達(dá)式對一個(gè)與邏輯表達(dá)式(&&)求值時(shí),只有組成表達(dá)式的所有運(yùn)算量的值為真(1),其結(jié)果才為真,只要這些運(yùn)算量中有一個(gè)的值為假,其值即為假(0)22已知inta=2;doublef=3.0;charc=‘a(chǎn)’(c>a)&&(f>4)(1,0,其值為假)(c>a)&&(f<4)(1,1,其值為真)在邏輯表達(dá)式中,若連續(xù)出現(xiàn)多個(gè)“與”運(yùn)算,則從左至右依次計(jì)算每個(gè)表達(dá)式的值。只要計(jì)算出某一個(gè)表達(dá)式的值為假,則全式的結(jié)果為假,就不再對后面的表達(dá)式進(jìn)行計(jì)算-----短路運(yùn)算符例:intn=1,d=0;d!=0&&n*d<0(不必計(jì)算n*d<0)23或邏輯運(yùn)算符(||)對一個(gè)或邏輯表達(dá)式(||)求值時(shí),只要組成表達(dá)式的運(yùn)算量中有一個(gè)的值為真(1),其結(jié)果即為真,只有這些運(yùn)算量中所有值為假時(shí),其值即為假(0)。已知inta=2;doublef=3.0;charc=‘a(chǎn)’(c>a)||(f>4)(1,0,其值為真)(c<a)||(f>4)(0,0,其值為假)24邏輯非運(yùn)算(?。﹩文窟\(yùn)算表示對一個(gè)表達(dá)式的值取反的運(yùn)算。如果一個(gè)表達(dá)式的值為真,對其進(jìn)行邏輯非運(yùn)算后,其值為假;如果一個(gè)表達(dá)式的值為假,對其進(jìn)行邏輯非運(yùn)算后,其值為真??梢詫θ我鈹?shù)據(jù)類型的表達(dá)式進(jìn)行邏輯非運(yùn)算。已知inta=2;doublef=3.0;charc=‘a(chǎn)’(c>a)其值為真!(c>a)其值為假25賦值運(yùn)算將一個(gè)數(shù)值或一個(gè)表達(dá)式的值送給一個(gè)變量的操作稱為賦值例如:(inta;)a=6;a=a+6;a=a+(b*2+1)注意:表達(dá)式中的“=”不在是數(shù)學(xué)上的等號。這里體現(xiàn)了一種“迭代”的運(yùn)算。26C語言中的賦值運(yùn)算由于賦值表達(dá)式與傳統(tǒng)的數(shù)學(xué)等式相悖,容易造成誤解賦值號左端的變量還要在右端重寫一次,顯得過于繁瑣x=x+6x+=6x=x*6x*=6x=x-6x-=6x=x/6x/=6x=x%6x%=627特別地:
x=x+1x++賦值運(yùn)算是雙目運(yùn)算,其左值必須是單個(gè)變量(有確定的內(nèi)存空間);其右值可以是表達(dá)式、常量以及已經(jīng)賦值的變量。一個(gè)變量在進(jìn)行賦值運(yùn)算后,獲得新的數(shù)值的同時(shí),原來的值將不復(fù)存在。28多重賦值語句由多個(gè)賦值運(yùn)算符組成的語句例:Intx=2,y,z;x+=y=z=6按照“從右至左”的結(jié)合順序進(jìn)行計(jì)算,依次完成賦值操作z=6賦值后z變量的值為6y=z將變量z的值賦給變量y,y的值也為6x+=yx=x+yx最終值為829自增自減運(yùn)算自增運(yùn)算++:a++:a=a+1自減運(yùn)算--:a--:a=a-1自增運(yùn)算包括前置運(yùn)算和后置運(yùn)算,二者在參與運(yùn)算時(shí)具有較大區(qū)別運(yùn)算符放在變量的前面:++a;--a變量先自增或自減,然后使用變量自增或自減后的值參加其他運(yùn)算前置運(yùn)算30后置運(yùn)算運(yùn)算符放在變量的前面:a++;a--變量先以原來的值參與其他運(yùn)算,然后再自增或自減。例:intm=12,n=5,k=16,x;x=n++;(n的原值5送給x,然后自增為6x=++n;(n自增為7,然后將其值賦給xx=(++k)-(--m)(k先自增為17,m自減為
11,然后將運(yùn)算結(jié)果6賦給xx=k++-m--(k和m以原值進(jìn)行減法運(yùn)算,將結(jié)果6賦給X,然后k自增,m自減31三目運(yùn)算格式:包含3個(gè)運(yùn)算量表達(dá)式1?表達(dá)式2:表達(dá)式3;算法:首先計(jì)算表達(dá)式1的值,若其值為真(非零值),則計(jì)算表達(dá)式2的值作為整個(gè)表達(dá)式的值;若其值為假(0),則計(jì)算表達(dá)式3的值作為整個(gè)表達(dá)式的值;例:intx=4,y=6,z;
z=x>y?x:y
因?yàn)閤(4)<y(6),因此將y的值賦給z(6)32運(yùn)算符的優(yōu)先級在計(jì)算含有多個(gè)不同運(yùn)算符的表達(dá)式時(shí),必須考慮哪個(gè)運(yùn)算符優(yōu)先計(jì)算的問題。這是通過為不同類型的運(yùn)算符設(shè)置不同的優(yōu)先級來實(shí)現(xiàn)的。不同優(yōu)先級的運(yùn)算符具有不同的運(yùn)算順序,類似于我們熟知的“先乘除、后加減”33常用運(yùn)算符的優(yōu)先級一般來說,單目運(yùn)算的優(yōu)先級最高:++、--、!、+(取正數(shù))、-(取負(fù)數(shù))*,/,%+,-<,<=,>,>===,!=&&||三目運(yùn)算:?:賦值運(yùn)算:=,+=等等最低34優(yōu)先級總結(jié):單目高于雙目,雙目高于三目,三目高于賦值在雙目中:算術(shù)運(yùn)算高于關(guān)系運(yùn)算,關(guān)系運(yùn)算高于邏輯運(yùn)算在以后的學(xué)習(xí)過程中,我們還會不斷學(xué)習(xí)到更多新的運(yùn)算符,仍然可以根據(jù)上述方法來確定優(yōu)先級。Intx=4,y=25,z=2;z=(--y/++x)*z--結(jié)果:735運(yùn)算符的結(jié)合規(guī)則在一個(gè)1表達(dá)式中,如果同一級別的運(yùn)算符出現(xiàn)在一個(gè)表達(dá)式的相鄰位置,這時(shí)必須考慮結(jié)合規(guī)則。例如a+b-c,到底是(a+b)-c還是a+(b-c)大多數(shù)運(yùn)算符的結(jié)合規(guī)則都是從左到右,只有兩類運(yùn)算符是從右到左:單目運(yùn)算:!
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 素描室內(nèi)寫生課程設(shè)計(jì)
- 相機(jī)掛件課程設(shè)計(jì)
- 英語語言學(xué)課程設(shè)計(jì)
- 航空專業(yè)票務(wù)課程設(shè)計(jì)
- (中職中專)貿(mào)法律與案例教學(xué)設(shè)計(jì)全書電子教案整本書教案1-6章全
- 電信課程設(shè)計(jì)論文
- 糖化鍋課程設(shè)計(jì)選型
- 給水廠課程設(shè)計(jì)總結(jié)心得
- 游戲觀察課程設(shè)計(jì)
- 聯(lián)考素描課程設(shè)計(jì)考什么
- 2024關(guān)于家長會家長代表發(fā)言稿(30篇)
- 中醫(yī)內(nèi)科學(xué):中醫(yī)內(nèi)科學(xué)肢體經(jīng)絡(luò)病證考試題(題庫版)
- 燈具行業(yè)采購工作總結(jié)
- 大學(xué)寫作智慧樹知到期末考試答案章節(jié)答案2024年麗水學(xué)院
- NB-T31022-2012風(fēng)力發(fā)電工程達(dá)標(biāo)投產(chǎn)驗(yàn)收規(guī)程
- GJB9001C產(chǎn)品風(fēng)險(xiǎn)評估報(bào)告
- 2024年天津三源電力集團(tuán)限公司社會招聘33人【重點(diǎn)基礎(chǔ)提升】模擬試題(共500題)附帶答案詳解
- 蘇教版六年級上冊科學(xué)期末測試卷帶答案
- 中式婚宴主題宴會設(shè)計(jì)方案策劃(2篇)
- 媒介與性別文化傳播智慧樹知到期末考試答案章節(jié)答案2024年浙江工業(yè)大學(xué)
- 我會舉手來發(fā)言(教案)2023-2024學(xué)年心理健康一年級
評論
0/150
提交評論