C語言數(shù)據(jù)類型和變量-文檔資料_第1頁
C語言數(shù)據(jù)類型和變量-文檔資料_第2頁
C語言數(shù)據(jù)類型和變量-文檔資料_第3頁
C語言數(shù)據(jù)類型和變量-文檔資料_第4頁
C語言數(shù)據(jù)類型和變量-文檔資料_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、1第3章C數(shù)據(jù)類型和變量 學(xué)習(xí)目的和要求:學(xué)習(xí)目的和要求:n掌握數(shù)據(jù)類型和變量的基本概念、特點(diǎn)和使用方法 。n熟練掌握算術(shù)、賦值、逗號和sizeof運(yùn)算符與表達(dá)式的使用 。n理解并能應(yīng)用強(qiáng)制轉(zhuǎn)換 推薦學(xué)時(shí)推薦學(xué)時(shí):3學(xué)時(shí)學(xué)時(shí)2第3章C數(shù)據(jù)類型和變量 在數(shù)學(xué)中,我們對變量的概念有一定的了解和認(rèn)識。如在數(shù)學(xué)中,我們對變量的概念有一定的了解和認(rèn)識。如y=x2 ,其中,其中x是自是自變量變量,y是因變量是因變量 。引入 那么在計(jì)算機(jī)中的變量具體是指一個(gè)什么概念呢?其實(shí)一個(gè)變量就是存儲那么在計(jì)算機(jī)中的變量具體是指一個(gè)什么概念呢?其實(shí)一個(gè)變量就是存儲器(內(nèi)存)中的一個(gè)存儲空間。器(內(nèi)存)中的一個(gè)存儲空間。

2、3下面借用一個(gè)生活中的范例,講解數(shù)據(jù)類型、變量、變量類型、變量名。假設(shè)有糧庫(庫名為LK)、車庫(庫名為CK)和書庫(庫名為SK)三個(gè)倉庫,且分別只能裝糧食、停車子和擺放圖書 。引例引例第3章C數(shù)據(jù)類型和變量 4 第3章C數(shù)據(jù)類型和變量 5LK中裝的糧食可以是玉米、小麥、大中裝的糧食可以是玉米、小麥、大米等。米等。CK中停的車子可以是不同的車子。中停的車子可以是不同的車子。SK中的擺放的書可以是更換的。這說明中的擺放的書可以是更換的。這說明LK、CK和和SK中的物體型號是可變化的。中的物體型號是可變化的。第3章C數(shù)據(jù)類型和變量 常量與變量:常量與變量:6第3章C數(shù)據(jù)類型與變量 如果我們把糧食、

3、車和書比著數(shù)據(jù),那么上述三種庫房(LK、CK和SK)就相當(dāng)于計(jì)算機(jī)中的三種變量(之所以稱它們?yōu)樽兞孔兞?,是因?yàn)槠渲械臄?shù)據(jù)可以變更),且它們的類型不同,LK、CK和SK就是上述三種變量的變量名變量名,上述三個(gè)上述三個(gè)庫房空間就相當(dāng)于計(jì)算機(jī)存儲器中的三個(gè)存儲庫房空間就相當(dāng)于計(jì)算機(jī)存儲器中的三個(gè)存儲單元單元;如果庫房里的物體不可替換是固定的不可替換是固定的,那么這樣的庫房就相當(dāng)于計(jì)算機(jī)中的常量計(jì)算機(jī)中的常量。常量與變量:常量與變量:7在現(xiàn)實(shí)中,數(shù)據(jù)有多種類型。例如,數(shù)字?jǐn)?shù)據(jù)0、1、2等,字符數(shù)據(jù)a、b、c、d、e、f等。計(jì)算機(jī)中所處理的數(shù)據(jù)類型與現(xiàn)實(shí)中的類型相同。 第3章C數(shù)據(jù)類型和變量 8add1

4、、add2、add3分分別代表存儲空間中的別代表存儲空間中的3個(gè)存儲單元的地址(相個(gè)存儲單元的地址(相當(dāng)于當(dāng)于LK、CK和和SK)第3章C數(shù)據(jù)類型和變量 在存儲器(這里指內(nèi)存)里分配存儲空間在存儲器(這里指內(nèi)存)里分配存儲空間存儲數(shù)據(jù)。存儲器空間和數(shù)據(jù)在存儲空間存儲數(shù)據(jù)。存儲器空間和數(shù)據(jù)在存儲空間里的存儲狀態(tài)如圖里的存儲狀態(tài)如圖 。 add11add2Aadd31.234567891(整型)、(整型)、A(字符)、字符)、1.23456789(?。ǜ↑c(diǎn)型)分別是存點(diǎn)型)分別是存儲在存儲器中的儲在存儲器中的3個(gè)存儲單元里的個(gè)存儲單元里的數(shù)據(jù)(相當(dāng)于糧數(shù)據(jù)(相當(dāng)于糧食、車和書)食、車和書) 9第3

5、章C數(shù)據(jù)類型和變量 首先對存儲器的存儲單元分別取名add1、add2、add3,然后再嚴(yán)格按照每個(gè)存儲單元的類型來使用。 10第3章C數(shù)據(jù)類型和變量 任何計(jì)算機(jī)語言都有其數(shù)據(jù)類型,數(shù)據(jù)類型決定了數(shù)據(jù)性質(zhì)和取值范圍。數(shù)據(jù)性質(zhì)指的是“整數(shù)”、“字符數(shù)”、“實(shí)數(shù)”等。取值范圍是 指計(jì)算機(jī)能表達(dá)的上下限。 11C語言提供了豐富的數(shù)據(jù)類型,其主要包括整數(shù)類型(int)、字符類型(char)、單精度浮點(diǎn)數(shù)類型(float)、雙精度浮點(diǎn)數(shù)類型(double)、數(shù)組類型、結(jié)構(gòu)類型(struct)、聯(lián)合類型(union)、指針類型(pointer)、枚舉類型(enum)和用戶自定義數(shù)據(jù)類型(typed ef )

6、在后面講解。第3章C語言數(shù)據(jù)類型 12第3章C數(shù)據(jù)類型一覽表 13第3章C數(shù)據(jù)類型 數(shù)據(jù)類型字節(jié)個(gè)數(shù)數(shù)據(jù)范圍整型(int)4-21474836482147483647實(shí)型(float)43.4E-383.4E+38字符(char)10255雙精度型(double)81.7E-3081.7E+308基本類型所占存儲空間字節(jié)數(shù)及數(shù)據(jù)范圍基本類型所占存儲空間字節(jié)數(shù)及數(shù)據(jù)范圍 14第3章C數(shù)據(jù)類型 數(shù)據(jù)類型數(shù)據(jù)類型int、float、char和和double可以可以帶有各種修飾前綴。帶有各種修飾前綴。signed表示數(shù)據(jù)是有符號的表示數(shù)據(jù)是有符號的unsigned表示數(shù)據(jù)是無符號的表示數(shù)據(jù)是無符號的l

7、ong表示數(shù)據(jù)是表示數(shù)據(jù)是“長長”的的short表示數(shù)據(jù)是表示數(shù)據(jù)是“短短”的的修飾符與基本類型組合結(jié)果如下表:修飾符與基本類型組合結(jié)果如下表:15第3章C數(shù)據(jù)類型 類型類型字節(jié)個(gè)數(shù)字節(jié)個(gè)數(shù)取值范圍取值范圍說明說明int4-21474836482147483647signed short int2-3276832767有符號短整型數(shù),簡寫為有符號短整型數(shù),簡寫為short或或int,字長,字長為為2個(gè)字節(jié)共個(gè)字節(jié)共16位的二進(jìn)制數(shù)位的二進(jìn)制數(shù)signed long int4-21474836482147483647有符號長整型數(shù),簡寫為有符號長整型數(shù),簡寫為long,字長為,字長為4個(gè)個(gè)字節(jié)共

8、字節(jié)共32位的二進(jìn)制數(shù)位的二進(jìn)制數(shù)unsigned short int4065535無符號短整型數(shù),簡寫為無符號短整型數(shù),簡寫為unsigned int,字,字長為長為2個(gè)字節(jié)共個(gè)字節(jié)共16位的二進(jìn)制數(shù)位的二進(jìn)制數(shù)unsigned long int404294967295無符號長整型數(shù),簡寫為無符號長整型數(shù),簡寫為unsigned long,字,字長為長為4個(gè)字節(jié)共個(gè)字節(jié)共32位的二進(jìn)制數(shù)位的二進(jìn)制數(shù)float43.4E-383.4E+38char10255unsigned char10255無符號字符,可簡寫為無符號字符,可簡寫為charsigned char1-128127有符號字符有符號

9、字符double81.7E-3081.7E+308long double81.7E-3081.7E+308可以簡寫為可以簡寫為double16我們在理解了數(shù)據(jù)類型、變量與常量、變量名后,下面我們具體介紹C語言中的常量和變量。17常量是指在程序運(yùn)行過程中不能發(fā)生改變的量。常量的數(shù)據(jù)類型通常有5種:整型、實(shí)型、字符型、字符整型、實(shí)型、字符型、字符串型和符號常量串型和符號常量。 第3章C常量 18整型常量就是整數(shù),可以是十進(jìn)制、八進(jìn)制(以0開頭)或十六進(jìn)制數(shù)(以0 x或0X開頭)的整數(shù)。例如: 999,-15,012,0 x0c1.整型常量整型常量:第3章C常量 19實(shí)型常量是帶小數(shù)位的數(shù)值,可以是

10、小數(shù),也可以是指數(shù)。例如:3.14,-1.35,1.234e5,-1.2E60.123可寫成.123,在Visual C+6.0中,使用默認(rèn)格式輸出浮點(diǎn)數(shù)時(shí),只保留小數(shù)點(diǎn)后6位。 第3章C常量 2.實(shí)型常量實(shí)型常量:20字符型常量是括在單引號單引號內(nèi)的一個(gè)字符。 這些字符通常是ASCII碼字符,它們的值即為該字符對應(yīng)的ASCII碼值。(ASCII請參閱附錄A)。例如:a0AN第3章C常量 3.字符型常量字符型常量:21字符串常量是由雙引號括起來的字符序列。編譯程序在每個(gè)字符串的后面自動(dòng)加上0以示結(jié)束。例如:“Visual C+”“我的第一個(gè)C程序”“北京歡迎您!” “x”第3章C常量 4.字符

11、串常量字符串常量:22強(qiáng)調(diào)說明強(qiáng)調(diào)說明字符串”Visual C+”共有11個(gè)字符,除本身10個(gè)(空格也算一個(gè))外,還加上0。“x”不同于x,相當(dāng)與x和0,共2個(gè)字符。 23符號常量是指以標(biāo)識符形式出現(xiàn)的常量。C語言中符號常量的定義可通過編譯預(yù)處理 #define 得到。符號常量的語法形式為:#define 符號常量名 值 例如:#define PI 3.1414926#define A 10第3章C常量 5.符號常量符號常量:24整型數(shù)據(jù)存儲的存儲單元(整型變量)的定義用關(guān)鍵字int 。第3章C變量 1.整型變量整型變量:25例3.1:26所謂浮點(diǎn)數(shù)浮點(diǎn)數(shù)就是我們大家所熟知的實(shí)數(shù)。C語言中的浮

12、點(diǎn)數(shù)有兩種表示形式:十進(jìn)制數(shù)十進(jìn)制數(shù)形式和指數(shù)指數(shù)形式。 第3章C變量 2.浮點(diǎn)型變量浮點(diǎn)型變量:27十進(jìn)制數(shù)形式:十進(jìn)制數(shù)形式:這種形式與通常的實(shí)數(shù)表示形式法類似,但是必須帶有小數(shù)點(diǎn)。另外,當(dāng)小數(shù)點(diǎn)左邊或右邊為0時(shí),可以省略其中一邊的0。例如,1.28,128.0,128.,0.128,0.128,0.0,0.,.0等均是有效的浮點(diǎn)數(shù)。第3章C變量 28指數(shù)形式 : 指數(shù)形式既所謂的科學(xué)記數(shù)法。例如,1.8e5或1.8E5即為1.8105,1.8e-5或1.8E-5即為1.810-5,-1.8e5或-1.8E5即為-1.8105,均為浮點(diǎn)數(shù)的指數(shù)形式。字母e或E之前的數(shù)值稱為尾數(shù)尾數(shù),后面的

13、數(shù)值稱為指數(shù)指數(shù),指數(shù)前可有“+”或“-”,用以表示與尾數(shù)相乘的10的冪,尾數(shù)前也可以有“+”或“-”,用以表示該浮點(diǎn)數(shù)為正數(shù)或負(fù)數(shù)。第3章C變量 29在C語言中,尾數(shù)不可缺少,且指數(shù)必須為整數(shù)整數(shù)。第3章C變量 30單精度浮點(diǎn)數(shù)類型和雙精度浮點(diǎn)數(shù)雙精度浮點(diǎn)數(shù)類型數(shù)據(jù)存儲的存儲單元(浮點(diǎn)數(shù)類型變量)的定義分別用關(guān)鍵字float和double。 第3章C變量 31例3.2 :32例3.3 :33字符型字符型數(shù)據(jù)存儲的存儲單元(字符型變量)的定義用關(guān)鍵字char。第3章C變量 3.字符型變量字符型變量:34例3.4 :35在上述程序中,如將char max=A;換為char max=”A”;的話,

14、雖然對于打印輸出結(jié)果不影響,但是它們在內(nèi)存中的存放形式是不一樣的。 強(qiáng)調(diào)說明強(qiáng)調(diào)說明 36C語言中沒有字符串變量類型,字符型數(shù)據(jù)只能存儲于字符型變量中,例如,char max=”How are you doing!”,這樣的語句使用是錯(cuò)誤的。如果要存儲字符串?dāng)?shù)據(jù)的話,那么只能以字符數(shù)組或指針形式實(shí)現(xiàn)。 提前說明提前說明 37由于不同數(shù)據(jù)類型所占據(jù)的存儲空間不同,在定義變量的類型時(shí)應(yīng)充分考慮變量的取值范圍。例如,整型(int)類型的變量取值范圍為-232 232-1。如果在運(yùn)算中,數(shù)值超出這個(gè)范圍則稱為溢出,大于232-1稱為上溢,小于-232稱為下溢 有關(guān)溢出 38例3.5 :39例3.6 :

15、求解半徑r為1.2單位長度的圓的面積。 在上述程序中,第1行用#define定義pi代表常量3.1415926,第2行用#define定義s(r)代表字符串常量pi*(r)*(r),我們把這里的標(biāo)識符pi和s(r)稱之為宏。 40C語言的運(yùn)算符也稱為操作符,是運(yùn)算對象(也稱為操作數(shù))間的聯(lián)結(jié)符號。第3章C語言運(yùn)算符41第3章C語言運(yùn)算符 按運(yùn)算類型可分成算術(shù)運(yùn)算符算術(shù)運(yùn)算符、關(guān)系運(yùn)算符關(guān)系運(yùn)算符、邏輯運(yùn)算邏輯運(yùn)算符符、賦值運(yùn)算符賦值運(yùn)算符、位運(yùn)算符位運(yùn)算符、指針運(yùn)算符和取成員運(yùn)算符等。按運(yùn)算參與對象的個(gè)數(shù)又可以分為單目運(yùn)算符、雙目運(yùn)算符和三目運(yùn)算符。關(guān)于運(yùn)算符號的完整信息,參閱附錄C。關(guān)系運(yùn)算

16、符與關(guān)系表達(dá)式,邏輯運(yùn)算符與邏輯表達(dá)式放在第5章詳細(xì)講解。位運(yùn)算符放在附錄F。42將運(yùn)算對象,比如常量、變量按照一定規(guī)則用運(yùn)算符連接起來構(gòu)成的有意義的混合式子就叫C語言的表達(dá)式。 第3章C語言表達(dá)式 43第3章C語言表達(dá)式 C語言的表達(dá)式中的運(yùn)算對象除了可以是常量、變量外,還可以是函數(shù)以及別的表達(dá)式。也就是說,可以由表達(dá)式通過操作符構(gòu)成更復(fù)雜的表達(dá)式。下面是合法的表達(dá)式:a+bx=a*3s=PI*r*rc=getchar()在求解表達(dá)式的結(jié)果時(shí),不同運(yùn)算符具有不同的優(yōu)先級,優(yōu)先級不同參與運(yùn)算的次序不同;相同的優(yōu)先級還有不同的結(jié)合方向。 44第3章C語言算術(shù)運(yùn)算符 C語言的算術(shù)運(yùn)算符有5個(gè)雙目運(yùn)

17、算符:加“+”、減“-”、乘“*”、除“/”、求余(取模)“%”和4個(gè)單目運(yùn)算符:自增“+”、自減“-”、單目加“+”、單目減“-”和1個(gè)圓括號運(yùn)算符:括號“()”45雙目運(yùn)算符加“+”、減“-”、乘“*”、除“/”與數(shù)學(xué)運(yùn)算符沒有什么區(qū)別,可以像在數(shù)學(xué)公式中一樣使用,例如:a+ba=5+a2-a/3i*i-5b/a-2第3章C語言+、-、*、/算術(shù)運(yùn)算符 46單目加”+”和單目減”-”只能有一個(gè)操作數(shù),實(shí)際就是取操作數(shù)的正或負(fù)值。第3章C語言單目+、-算術(shù)運(yùn)算符 47例3.11 :48自增“+”、自減“-”是指操作數(shù)自身增加1或者減少1。按其在操作數(shù)的前后位置可以稱為“前自增”、“前自減”、

18、“后自增”、“后自減”。第3章C語言+ 、-運(yùn)算符號 49第3章C語言+、- 后自增和后自減是先進(jìn)行語句中的其他運(yùn)算,語句完成后再執(zhí)行自增或自減少運(yùn)算;而前自增和前自減是先對變量進(jìn)行自增或自減運(yùn)算,在運(yùn)算完成后變量再參與語句中的其他運(yùn)算。50例3.12 :代碼代碼5行在賦值給行在賦值給a時(shí),先將變量時(shí),先將變量i的值賦給的值賦給a,此時(shí)變量此時(shí)變量i的值未改變,值為的值未改變,值為5。賦值完成后,。賦值完成后,運(yùn)算符運(yùn)算符“+”對變量對變量i進(jìn)行自增,進(jìn)行自增,i的值變?yōu)榈闹底優(yōu)?; 代碼代碼6行在賦值給變量行在賦值給變量b時(shí),時(shí),i先自增,先自增,i的值的值變?yōu)樽優(yōu)?,然后再將值賦給變量,然

19、后再將值賦給變量b; 代碼代碼7行在語句行在語句“-i;”中,自減運(yùn)算符中,自減運(yùn)算符“-”將將變量變量i的值減的值減1,此時(shí)變量,此時(shí)變量i的值為的值為6; 代碼代碼8行中,先將變量行中,先將變量i的值賦給的值賦給變量變量c,此時(shí),此時(shí)c的值為的值為6,再對變,再對變量量i進(jìn)行自減運(yùn)算,變量進(jìn)行自減運(yùn)算,變量i的值為的值為5。 51第3章C語言%運(yùn)算符 求余運(yùn)算符“%”要求左操作數(shù)和右操作數(shù)都是整數(shù),運(yùn)算結(jié)果是兩個(gè)操作數(shù)相除的余數(shù)。52例3.13 :53優(yōu)先級是指運(yùn)算的先后順序。第3章C算術(shù)運(yùn)算符號優(yōu)先級 低低高高()()-單目減單目減+單目加單目加* / %+ -54賦值運(yùn)算符用于改變變量

20、的值。C語言提供了1個(gè)簡單賦值運(yùn)算符“=”和10個(gè)復(fù)合賦值運(yùn)算符:+=、-=、*=、/=、%=、=、&=、=和|=。 第3章C語言賦值運(yùn)算符55在復(fù)合運(yùn)算符中,構(gòu)成運(yùn)算符的兩個(gè)符號間不能有空格。特別強(qiáng)調(diào)56第3章左結(jié)合性賦值運(yùn)算符都是左結(jié)合運(yùn)算符,即賦值運(yùn)算將右邊的操作數(shù)的值賦給左邊的操作數(shù)。因此,左操作數(shù)必須是一個(gè)變量??梢允褂觅x值運(yùn)算符對變量進(jìn)行連續(xù)賦值。 57例3.14 :58第3章C語言復(fù)合賦值運(yùn)算符符合賦值運(yùn)算符是將一個(gè)其他運(yùn)算符加上簡單賦值運(yùn)算符而得到的,其含義為:將左操作數(shù)和右操作數(shù)按運(yùn)算符進(jìn)行運(yùn)算,將運(yùn)算結(jié)果的值賦給左操作數(shù)。請比較例3.15和3.16: 59例3.15

21、 :60例3.16 :61逗號運(yùn)算符用于分隔同行中的幾個(gè)表達(dá)式。例如:a+=1,b+,-c;第3章C語言逗號運(yùn)算符 62逗號運(yùn)算的優(yōu)先級最低,主要用作將幾行短語句合并成一句,簡化程序書寫,但會損害程序的可讀性,建議不要過多使用。強(qiáng)調(diào)說明 63例3.17 :64sizeof運(yùn)算符用于計(jì)算其操作數(shù)的長度,即其在內(nèi)存中所占的字節(jié)數(shù)。第3章C語言sizeof運(yùn)算符 65例3.18 :66第3章 C語言類型轉(zhuǎn)換1.自動(dòng)轉(zhuǎn)換自動(dòng)轉(zhuǎn)換:在表達(dá)式中進(jìn)行運(yùn)算時(shí),通常會將不同類型的數(shù)據(jù)混合使用,此時(shí)就會關(guān)系到類型轉(zhuǎn)化的問題。C語言中將對其類型自動(dòng)進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換一語言中將對其類型自動(dòng)進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換一般是般是“向上向上”的,即由占存儲空間少的數(shù)據(jù)類的,即由占存儲空間少的數(shù)據(jù)類型向占存儲空間多的數(shù)據(jù)類型轉(zhuǎn)換。型向占存儲空間多的數(shù)據(jù)類型轉(zhuǎn)換。 67所謂轉(zhuǎn)換是向上的,即char、short型都轉(zhuǎn)化為int型,int型轉(zhuǎn)換為unsigned型,unsigned型轉(zhuǎn)換為long型,long型和float型轉(zhuǎ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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論