第2講 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式_第1頁(yè)
第2講 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式_第2頁(yè)
第2講 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式_第3頁(yè)
第2講 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式_第4頁(yè)
第2講 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第2講

數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式1計(jì)算機(jī)中的信息計(jì)算機(jī)中的信息雖然種類(lèi)繁多,形式多樣。但是在處理時(shí)都可以表達(dá)為數(shù)據(jù)的形式。這里的數(shù)據(jù)不僅包括我們熟知的數(shù)學(xué)運(yùn)算中的數(shù)據(jù),還包括聲音、圖像等復(fù)雜信息。數(shù)據(jù)在計(jì)算機(jī)中進(jìn)行處理時(shí),首先必須解決的問(wèn)題是數(shù)據(jù)在存儲(chǔ)器里的存儲(chǔ)問(wèn)題:由于計(jì)算機(jī)的內(nèi)存大小有限,怎樣存儲(chǔ)更加節(jié)約存儲(chǔ)空間?怎樣存儲(chǔ)便于數(shù)據(jù)的管理,例如查找、排序、統(tǒng)計(jì)等。結(jié)論:計(jì)算機(jī)中的數(shù)據(jù)按照類(lèi)型進(jìn)行存儲(chǔ)引出“數(shù)據(jù)類(lèi)型”的概念2引例假設(shè)要記錄一個(gè)人的詳細(xì)資料。具體內(nèi)容如下:姓名:michal性別:男年齡:30工資:2004.86工作單位:人民郵電出版社發(fā)行部3假如現(xiàn)在分別用不同的數(shù)據(jù)來(lái)表示上述個(gè)人資料中的基本信息。姓名:字符類(lèi)型數(shù)據(jù)性別:只有“男”和“女”兩種選擇年齡:都為整數(shù),而且一般不會(huì)超過(guò)100工資:實(shí)數(shù)工作單位:內(nèi)容豐富結(jié)論:不同的數(shù)據(jù)信息在表達(dá)時(shí)具有不同的特點(diǎn)4劃分?jǐn)?shù)據(jù)類(lèi)型的必要性劃分?jǐn)?shù)據(jù)類(lèi)型的意義:劃分?jǐn)?shù)據(jù)類(lèi)型有利于數(shù)據(jù)的管理劃分?jǐn)?shù)據(jù)類(lèi)型有利于有效利用計(jì)算機(jī)有限的內(nèi)存空間在C程序中:每一個(gè)數(shù)據(jù)都被賦予一個(gè)確定的數(shù)據(jù)類(lèi)型。不同的數(shù)據(jù)類(lèi)型的數(shù)據(jù)在存儲(chǔ)時(shí)占有不同長(zhǎng)度的內(nèi)存空間。注意:C程序中的每一個(gè)數(shù)據(jù)都必須有一個(gè)確定的數(shù)據(jù)類(lèi)型。5基本數(shù)據(jù)類(lèi)型數(shù)據(jù)類(lèi)型的分類(lèi)基本數(shù)據(jù)類(lèi)型復(fù)雜數(shù)據(jù)類(lèi)型幾種常用的基本數(shù)據(jù)類(lèi)型:char,字符型:占有一個(gè)字節(jié)的長(zhǎng)度,主要用來(lái)描述符號(hào)類(lèi)型的數(shù)據(jù)。int,整型數(shù):占有4個(gè)字節(jié)的長(zhǎng)度,一般用來(lái)描述整數(shù)類(lèi)型的數(shù)據(jù)float,單精度浮點(diǎn)型實(shí)數(shù):占有4個(gè)字節(jié)的長(zhǎng)度,一般用來(lái)表示帶有小數(shù)的實(shí)數(shù)。double,雙精度浮點(diǎn)型實(shí)數(shù):占有8個(gè)字節(jié)的長(zhǎng)度,一般用來(lái)表示精度較高的實(shí)數(shù)6總結(jié)回到前例,下面分析幾種數(shù)據(jù)在表達(dá)上的特點(diǎn):姓名:工作單位:可以使用字符型數(shù)據(jù)char來(lái)表示年齡:可以使用整型數(shù)據(jù)int來(lái)表示工資:可以使用單精度實(shí)數(shù)float來(lái)表示。在C語(yǔ)言程序中,每一個(gè)數(shù)據(jù)都應(yīng)該具有特定的類(lèi)型。7常量常量的概念常量就是在程序運(yùn)行過(guò)程中其數(shù)值不會(huì)發(fā)生改變的量。符號(hào)常量的使用定義:#define常量名稱(chēng)常量值例如:#definePI3.14159用途:便于程序的調(diào)試#defineA5…………..A………..A………………….A…….……………..A….A………..8提示:一般來(lái)說(shuō),在C程序中符號(hào)常量通常使用大寫(xiě)字母表示,以便區(qū)別于變量。特殊的字符常量:轉(zhuǎn)義字符\n:回車(chē)換行\(zhòng)a:警鈴聲\t:水平制表

\V:豎直制表\\:反斜杠“\”\‘:?jiǎn)我?hào)“’”9變量變量的概念在程序中其值可以發(fā)生改變的量。注意:一個(gè)變量在某一時(shí)刻只有一個(gè)確定的數(shù)值,一個(gè)變量在獲得新值時(shí)原值將不復(fù)存在。變量的定義格式:數(shù)據(jù)類(lèi)型變量名(=初始值)例如:inti=5對(duì)變量名的要求變量名主要由英文字母和數(shù)字構(gòu)成。C程序中的變量名區(qū)分大小寫(xiě)變量名中不允許包含“;”、“?!?、“+”、“-”以及“:”等符號(hào)。但可以使用下劃線(xiàn)“_”。實(shí)際應(yīng)用中,建議盡量使用具有實(shí)際意義的英文單詞作為變量名,盡量做到“見(jiàn)名知義”不要使用系統(tǒng)關(guān)鍵字作為變量名10定義變量的實(shí)質(zhì)變量的操作讀(?。?xiě)(存)定義一種數(shù)據(jù)類(lèi)型的變量的實(shí)質(zhì),就是在內(nèi)存中為該變量分配一定大小的存儲(chǔ)空間。此時(shí)變量名作為該存儲(chǔ)空間的標(biāo)識(shí)。當(dāng)程序?qū)υ撟兞窟M(jìn)行運(yùn)算時(shí),都要訪問(wèn)該變量對(duì)應(yīng)的存儲(chǔ)空間以進(jìn)行數(shù)據(jù)讀寫(xiě)任何變量在使用前必須定義。在程序中使用未經(jīng)定義的變量是不合法的11變量的值任何變量必須具有確定的數(shù)值才能參加運(yùn)算和操作。否則將會(huì)引發(fā)潛在的錯(cuò)誤。可以在變量定義的同時(shí)為其賦初值:

intage=10;也可以在定義變量后再為其賦初值

intage;

age=10;/*此處的“=”為賦值運(yùn)算符還可以同時(shí)定義多個(gè)變量并為其賦初值:

Inta=6,b=3,c=7;12整型變量數(shù)據(jù)在內(nèi)存中的存放形式二進(jìn)制補(bǔ)碼整型變量分類(lèi)基本整型int4字節(jié)短整型shortint2字節(jié)長(zhǎng)整型longint4字節(jié)有符號(hào)[signed]int

無(wú)符號(hào)unsignedint3.整型變量的定義13實(shí)型變量實(shí)型變量的存放形式實(shí)型變量的分類(lèi)

floatdoublelongdouble實(shí)型變量的定義14字符型變量字符變量用來(lái)存放字符型數(shù)據(jù)。但是在一個(gè)字符變量中只能存放一個(gè)字符。字符變量的賦值

charletter=‘a(chǎn)’/*注意加單引號(hào)*/字符變量的存儲(chǔ)字符變量在存儲(chǔ)時(shí),在其相對(duì)應(yīng)的存儲(chǔ)單元中并非存儲(chǔ)字符本身,而是將其對(duì)應(yīng)的ASCII代碼(一個(gè)整數(shù)值)保存在內(nèi)存空間中。字符串使用雙引號(hào)包括起來(lái)的字符序列:“CProgram”15數(shù)據(jù)的表示Bit(位):一個(gè)bit存儲(chǔ)一個(gè)二進(jìn)制位(0或1)字節(jié):8個(gè)bit作為一個(gè)字節(jié),是計(jì)算機(jī)中為數(shù)據(jù)分配內(nèi)存空間的單位。例如:char數(shù)據(jù)類(lèi)型數(shù)據(jù):1字節(jié);int類(lèi)型數(shù)據(jù):4字節(jié)一個(gè)數(shù)據(jù)被分配的存儲(chǔ)空間越大,能容納的信息量越大,越容易表達(dá)更加復(fù)雜的信息。數(shù)據(jù)在內(nèi)存中都以二進(jìn)制的形式表示10011011高位低位16運(yùn)算符和表達(dá)式運(yùn)算:對(duì)數(shù)據(jù)進(jìn)行加工處理的過(guò)程。運(yùn)算量:參與運(yùn)算的數(shù)據(jù)。運(yùn)算符:記錄不同種類(lèi)運(yùn)算的符號(hào)。表達(dá)式:用運(yùn)算符把運(yùn)算量連接起來(lái)的式子。運(yùn)算的類(lèi)型單目運(yùn)算:?jiǎn)蝹€(gè)運(yùn)算量參與的運(yùn)算。雙目運(yùn)算:兩個(gè)運(yùn)算量參與的運(yùn)算。三目運(yùn)算:三個(gè)運(yùn)算量參與的運(yùn)算。在C語(yǔ)言中只有一個(gè)三目運(yùn)算。17C語(yǔ)言中的運(yùn)算符C語(yǔ)言具有豐富的運(yùn)算符C語(yǔ)言中的運(yùn)算符被分為不同的類(lèi)型任何表達(dá)式都有一個(gè)確定的值算術(shù)運(yùn)算符:用于實(shí)現(xiàn)簡(jiǎ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)算符用來(lái)比較兩個(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)算符用來(lái)對(duì)關(guān)系式或邏輯量進(jìn)行邏輯運(yùn)算。邏輯運(yùn)算的結(jié)果也僅有兩種:真(1)和假(0)在C語(yǔ)言中使用整數(shù)0來(lái)表示邏輯假,同時(shí),使用非零值(只要不是0的正數(shù)和負(fù)數(shù))來(lái)代表邏輯真21“與”邏輯運(yùn)算符&&是一種雙目運(yùn)算將“與”邏輯運(yùn)算符&&插入兩個(gè)運(yùn)算量之間組成邏輯表達(dá)式。組成表達(dá)式的運(yùn)算量可以是算術(shù)表達(dá)式、關(guān)系表達(dá)式以及邏輯表達(dá)式對(duì)一個(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é)果為假,就不再對(duì)后面的表達(dá)式進(jìn)行計(jì)算-----短路運(yùn)算符例:intn=1,d=0;d!=0&&n*d<0(不必計(jì)算n*d<0)23或邏輯運(yùn)算符(||)對(duì)一個(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)算表示對(duì)一個(gè)表達(dá)式的值取反的運(yùn)算。如果一個(gè)表達(dá)式的值為真,對(duì)其進(jìn)行邏輯非運(yùn)算后,其值為假;如果一個(gè)表達(dá)式的值為假,對(duì)其進(jìn)行邏輯非運(yùn)算后,其值為真??梢詫?duì)任意數(shù)據(jù)類(lèi)型的表達(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è)變量的操作稱(chēng)為賦值例如:(inta;)a=6;a=a+6;a=a+(b*2+1)注意:表達(dá)式中的“=”不在是數(shù)學(xué)上的等號(hào)。這里體現(xiàn)了一種“迭代”的運(yùn)算。26C語(yǔ)言中的賦值運(yùn)算由于賦值表達(dá)式與傳統(tǒng)的數(shù)學(xué)等式相悖,容易造成誤解賦值號(hào)左端的變量還要在右端重寫(xiě)一次,顯得過(guò)于繁瑣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í),原來(lái)的值將不復(fù)存在。28多重賦值語(yǔ)句由多個(gè)賦值運(yùn)算符組成的語(yǔ)句例: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--變量先以原來(lái)的值參與其他運(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í)在計(jì)算含有多個(gè)不同運(yùn)算符的表達(dá)式時(shí),必須考慮哪個(gè)運(yùn)算符優(yōu)先計(jì)算的問(wèn)題。這是通過(guò)為不同類(lèi)型的運(yùn)算符設(shè)置不同的優(yōu)先級(jí)來(lái)實(shí)現(xiàn)的。不同優(yōu)先級(jí)的運(yùn)算符具有不同的運(yùn)算順序,類(lèi)似于我們熟知的“先乘除、后加減”33常用運(yùn)算符的優(yōu)先級(jí)一般來(lái)說(shuō),單目運(yùn)算的優(yōu)先級(jí)最高:++、--、!、+(取正數(shù))、-(取負(fù)數(shù))*,/,%+,-<,<=,>,>===,!=&&||三目運(yùn)算:?:賦值運(yùn)算:=,+=等等最低34優(yōu)先級(jí)總結(jié):?jiǎn)文扛哂陔p目,雙目高于三目,三目高于賦值在雙目中:算術(shù)運(yùn)算高于關(guān)系運(yùn)算,關(guān)系運(yùn)算高于邏輯運(yùn)算在以后的學(xué)習(xí)過(guò)程中,我們還會(huì)不斷學(xué)習(xí)到更多新的運(yùn)算符,仍然可以根據(jù)上述方法來(lái)確定優(yōu)先級(jí)。Intx=4,y=25,z=2;z=(--y/++x)*z--結(jié)果:735運(yùn)算符的結(jié)合規(guī)則在一個(gè)1表達(dá)式中,如果同一級(jí)別的運(yùn)算符出現(xiàn)在一個(gè)表達(dá)式的相鄰位置,這時(shí)必須考慮結(jié)合規(guī)則。例如a+b-c,到底是(a+b)-c還是a+(b-c)大多數(shù)運(yùn)算符的結(jié)合規(guī)則都是從左到右,只有兩類(lèi)運(yùn)算符是從右到左:?jiǎn)文窟\(yùn)算:!

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論