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

下載本文檔

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

文檔簡介

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

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

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

4、3分分別代表存儲空間中的別代表存儲空間中的3個存儲單元的地址(相個存儲單元的地址(相當(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型)分別是存點型)分別是存儲在存儲器中的儲在存儲器中的3個存儲單元里的個存儲單元里的數(shù)據(jù)(相當(dāng)于糧數(shù)據(jù)(相當(dāng)于糧食、車和書)食、車和書) 第3章C數(shù)據(jù)類型和變量

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

6、類型 第3章C數(shù)據(jù)類型一覽表 第3章C數(shù)據(jù)類型 數(shù)據(jù)類型字節(jié)個數(shù)數(shù)據(jù)范圍整型(int)4-21474836482147483647實型(float)43.4E-383.4E+38字符(char)10255雙精度型(double)81.7E-3081.7E+308基本類型所占存儲空間字節(jié)數(shù)及數(shù)據(jù)范圍基本類型所占存儲空間字節(jié)數(shù)及數(shù)據(jù)范圍 第3章C數(shù)據(jù)類型 數(shù)據(jù)類型數(shù)據(jù)類型int、float、char和和double可以可以帶有各種修飾前綴。帶有各種修飾前綴。signed表示數(shù)據(jù)是有符號的表示數(shù)據(jù)是有符號的unsigned表示數(shù)據(jù)是無符號的表示數(shù)據(jù)是無符號的long表示數(shù)據(jù)是表示數(shù)據(jù)是“長長”的的s

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

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

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

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

11、1個字符,除本身10個(空格也算一個)外,還加上0?!皒”不同于x,相當(dāng)與x和0,共2個字符。 符號常量是指以標(biāo)識符形式出現(xiàn)的常量。C語言中符號常量的定義可通過編譯預(yù)處理 #define 得到。符號常量的語法形式為:#define 符號常量名 值 例如:#define PI 3.1414926#define A 10第3章C常量 5.符號常量符號常量:整型數(shù)據(jù)存儲的存儲單元(整型變量)的定義用關(guān)鍵字int 。第3章C變量 1.整型變量整型變量:例3.1:所謂浮點數(shù)浮點數(shù)就是我們大家所熟知的實數(shù)。C語言中的浮點數(shù)有兩種表示形式:十進(jìn)制數(shù)十進(jìn)制數(shù)形式和指數(shù)指數(shù)形式。 第3章C變量 2.浮點型變量浮

12、點型變量:十進(jìn)制數(shù)形式:十進(jìn)制數(shù)形式:這種形式與通常的實數(shù)表示形式法類似,但是必須帶有小數(shù)點。另外,當(dāng)小數(shù)點左邊或右邊為0時,可以省略其中一邊的0。例如,1.28,128.0,128.,0.128,0.128,0.0,0.,.0等均是有效的浮點數(shù)。第3章C變量 指數(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,均為浮點數(shù)的指數(shù)形式。字母e或E之前的數(shù)值稱為尾數(shù)尾數(shù),后面的數(shù)值稱為指數(shù)指數(shù),指數(shù)前可有“+”或“-”,用以表示與尾數(shù)相乘的10的冪,尾數(shù)前也可以有“+”或

13、“-”,用以表示該浮點數(shù)為正數(shù)或負(fù)數(shù)。第3章C變量 在C語言中,尾數(shù)不可缺少,且指數(shù)必須為整數(shù)整數(shù)。第3章C變量 單精度浮點數(shù)類型和雙精度浮點數(shù)雙精度浮點數(shù)類型數(shù)據(jù)存儲的存儲單元(浮點數(shù)類型變量)的定義分別用關(guān)鍵字float和double。 第3章C變量 例3.2 :例3.3 :字符型字符型數(shù)據(jù)存儲的存儲單元(字符型變量)的定義用關(guān)鍵字char。第3章C變量 3.字符型變量字符型變量:例3.4 :在上述程序中,如將char max=A;換為char max=”A”;的話,雖然對于打印輸出結(jié)果不影響,但是它們在內(nèi)存中的存放形式是不一樣的。 強調(diào)說明強調(diào)說明 C語言中沒有字符串變量類型,字符型數(shù)據(jù)

14、只能存儲于字符型變量中,例如,char max=”How are you doing!”,這樣的語句使用是錯誤的。如果要存儲字符串?dāng)?shù)據(jù)的話,那么只能以字符數(shù)組或指針形式實現(xiàn)。 提前說明提前說明 由于不同數(shù)據(jù)類型所占據(jù)的存儲空間不同,在定義變量的類型時應(yīng)充分考慮變量的取值范圍。例如,整型(int)類型的變量取值范圍為-232 232-1。如果在運算中,數(shù)值超出這個范圍則稱為溢出,大于232-1稱為上溢,小于-232稱為下溢 有關(guān)溢出 例3.5 :例3.6 :求解半徑r為1.2單位長度的圓的面積。 在上述程序中,第1行用#define定義pi代表常量3.1415926,第2行用#define定義s

15、(r)代表字符串常量pi*(r)*(r),我們把這里的標(biāo)識符pi和s(r)稱之為宏。 C語言的運算符也稱為操作符,是運算對象(也稱為操作數(shù))間的聯(lián)結(jié)符號。第3章C語言運算符第3章C語言運算符 按運算類型可分成算術(shù)運算符算術(shù)運算符、關(guān)系運算符關(guān)系運算符、邏輯運算邏輯運算符符、賦值運算符賦值運算符、位運算符位運算符、指針運算符和取成員運算符等。按運算參與對象的個數(shù)又可以分為單目運算符、雙目運算符和三目運算符。關(guān)于運算符號的完整信息,參閱附錄C。關(guān)系運算符與關(guān)系表達(dá)式,邏輯運算符與邏輯表達(dá)式放在第5章詳細(xì)講解。位運算符放在附錄F。將運算對象,比如常量、變量按照一定規(guī)則用運算符連接起來構(gòu)成的有意義的混

16、合式子就叫C語言的表達(dá)式。 第3章C語言表達(dá)式 第3章C語言表達(dá)式 C語言的表達(dá)式中的運算對象除了可以是常量、變量外,還可以是函數(shù)以及別的表達(dá)式。也就是說,可以由表達(dá)式通過操作符構(gòu)成更復(fù)雜的表達(dá)式。下面是合法的表達(dá)式:a+bx=a*3s=PI*r*rc=getchar()在求解表達(dá)式的結(jié)果時,不同運算符具有不同的優(yōu)先級,優(yōu)先級不同參與運算的次序不同;相同的優(yōu)先級還有不同的結(jié)合方向。 第3章C語言算術(shù)運算符 C語言的算術(shù)運算符有5個雙目運算符:加“+”、減“-”、乘“*”、除“/”、求余(取模)“%”和4個單目運算符:自增“+”、自減“-”、單目加“+”、單目減“-”和1個圓括號運算符:括號“(

17、)”雙目運算符加“+”、減“-”、乘“*”、除“/”與數(shù)學(xué)運算符沒有什么區(qū)別,可以像在數(shù)學(xué)公式中一樣使用,例如:a+ba=5+a2-a/3i*i-5b/a-2第3章C語言+、-、*、/算術(shù)運算符 單目加”+”和單目減”-”只能有一個操作數(shù),實際就是取操作數(shù)的正或負(fù)值。第3章C語言單目+、-算術(shù)運算符 例3.11 :自增“+”、自減“-”是指操作數(shù)自身增加1或者減少1。按其在操作數(shù)的前后位置可以稱為“前自增”、“前自減”、“后自增”、“后自減”。第3章C語言+ 、-運算符號 第3章C語言+、- 后自增和后自減是先進(jìn)行語句中的其他運算,語句完成后再執(zhí)行自增或自減少運算;而前自增和前自減是先對變量進(jìn)

18、行自增或自減運算,在運算完成后變量再參與語句中的其他運算。例3.12 :代碼代碼5行在賦值給行在賦值給a時,先將變量時,先將變量i的值賦給的值賦給a,此時變量此時變量i的值未改變,值為的值未改變,值為5。賦值完成后,。賦值完成后,運算符運算符“+”對變量對變量i進(jìn)行自增,進(jìn)行自增,i的值變?yōu)榈闹底優(yōu)?; 代碼代碼6行在賦值給變量行在賦值給變量b時,時,i先自增,先自增,i的值的值變?yōu)樽優(yōu)?,然后再將值賦給變量,然后再將值賦給變量b; 代碼代碼7行在語句行在語句“-i;”中,自減運算符中,自減運算符“-”將將變量變量i的值減的值減1,此時變量,此時變量i的值為的值為6; 代碼代碼8行中,先將變量

19、行中,先將變量i的值賦給的值賦給變量變量c,此時,此時c的值為的值為6,再對變,再對變量量i進(jìn)行自減運算,變量進(jìn)行自減運算,變量i的值為的值為5。 第3章C語言%運算符 求余運算符“%”要求左操作數(shù)和右操作數(shù)都是整數(shù),運算結(jié)果是兩個操作數(shù)相除的余數(shù)。例3.13 :優(yōu)先級是指運算的先后順序。第3章C算術(shù)運算符號優(yōu)先級 低低高高()()-單目減單目減+單目加單目加* / %+ -賦值運算符用于改變變量的值。C語言提供了1個簡單賦值運算符“=”和10個復(fù)合賦值運算符:+=、-=、*=、/=、%=、=、&=、=和|=。 第3章C語言賦值運算符在復(fù)合運算符中,構(gòu)成運算符的兩個符號間不能有空格。特

20、別強調(diào)第3章左結(jié)合性賦值運算符都是左結(jié)合運算符,即賦值運算將右邊的操作數(shù)的值賦給左邊的操作數(shù)。因此,左操作數(shù)必須是一個變量??梢允褂觅x值運算符對變量進(jìn)行連續(xù)賦值。 例3.14 :第3章C語言復(fù)合賦值運算符符合賦值運算符是將一個其他運算符加上簡單賦值運算符而得到的,其含義為:將左操作數(shù)和右操作數(shù)按運算符進(jìn)行運算,將運算結(jié)果的值賦給左操作數(shù)。請比較例3.15和3.16: 例3.15 :例3.16 :逗號運算符用于分隔同行中的幾個表達(dá)式。例如:a+=1,b+,-c;第3章C語言逗號運算符 逗號運算的優(yōu)先級最低,主要用作將幾行短語句合并成一句,簡化程序書寫,但會損害程序的可讀性,建議不要過多使用。強調(diào)

21、說明 例3.17 :sizeof運算符用于計算其操作數(shù)的長度,即其在內(nèi)存中所占的字節(jié)數(shù)。第3章C語言sizeof運算符 例3.18 :第3章 C語言類型轉(zhuǎn)換1.自動轉(zhuǎn)換自動轉(zhuǎn)換:在表達(dá)式中進(jìn)行運算時,通常會將不同類型的數(shù)據(jù)混合使用,此時就會關(guān)系到類型轉(zhuǎn)化的問題。C語言中將對其類型自動進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換一語言中將對其類型自動進(jìn)行轉(zhuǎn)換,這種轉(zhuǎn)換一般是般是“向上向上”的,即由占存儲空間少的數(shù)據(jù)類的,即由占存儲空間少的數(shù)據(jù)類型向占存儲空間多的數(shù)據(jù)類型轉(zhuǎn)換。型向占存儲空間多的數(shù)據(jù)類型轉(zhuǎn)換。 所謂轉(zhuǎn)換是向上的,即char、short型都轉(zhuǎn)化為int型,int型轉(zhuǎn)換為unsigned型,unsigned型轉(zhuǎn)換為long型,long型和float

溫馨提示

  • 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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論