C語言數據類型和變量-文檔資料_第1頁
C語言數據類型和變量-文檔資料_第2頁
C語言數據類型和變量-文檔資料_第3頁
C語言數據類型和變量-文檔資料_第4頁
C語言數據類型和變量-文檔資料_第5頁
已閱讀5頁,還剩70頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

4、、add2、add3分分別代表存儲空間中的別代表存儲空間中的3個存儲單元的地址(相個存儲單元的地址(相當于當于LK、CK和和SK)第3章C數據類型和變量 在存儲器(這里指內存)里分配存儲空間在存儲器(這里指內存)里分配存儲空間存儲數據。存儲器空間和數據在存儲空間存儲數據。存儲器空間和數據在存儲空間里的存儲狀態如圖里的存儲狀態如圖 。 add11add2Aadd31.234567891(整型)、(整型)、A(字符)、字符)、1.23456789(浮(浮點型)分別是存點型)分別是存儲在存儲器中的儲在存儲器中的3個存儲單元里的個存儲單元里的數據(相當于糧數據(相當于糧食、車和書)食、車和書) 9第3

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

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

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

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

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

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

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

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

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

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

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

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

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

18、“后自增”、“后自減”。第3章C語言+ 、-運算符號 49第3章C語言+、- 后自增和后自減是先進行語句中的其他運算,語句完成后再執行自增或自減少運算;而前自增和前自減是先對變量進行自增或自減運算,在運算完成后變量再參與語句中的其他運算。50例3.12 :代碼代碼5行在賦值給行在賦值給a時,先將變量時,先將變量i的值賦給的值賦給a,此時變量此時變量i的值未改變,值為的值未改變,值為5。賦值完成后,。賦值完成后,運算符運算符“+”對變量對變量i進行自增,進行自增,i的值變為的值變為6; 代碼代碼6行在賦值給變量行在賦值給變量b時,時,i先自增,先自增,i的值的值變為變為7,然后再將值賦給變量,然

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

20、的值。C語言提供了1個簡單賦值運算符“=”和10個復合賦值運算符:+=、-=、*=、/=、%=、=、&=、=和|=。 第3章C語言賦值運算符55在復合運算符中,構成運算符的兩個符號間不能有空格。特別強調56第3章左結合性賦值運算符都是左結合運算符,即賦值運算將右邊的操作數的值賦給左邊的操作數。因此,左操作數必須是一個變量。可以使用賦值運算符對變量進行連續賦值。 57例3.14 :58第3章C語言復合賦值運算符符合賦值運算符是將一個其他運算符加上簡單賦值運算符而得到的,其含義為:將左操作數和右操作數按運算符進行運算,將運算結果的值賦給左操作數。請比較例3.15和3.16: 59例3.15

21、 :60例3.16 :61逗號運算符用于分隔同行中的幾個表達式。例如:a+=1,b+,-c;第3章C語言逗號運算符 62逗號運算的優先級最低,主要用作將幾行短語句合并成一句,簡化程序書寫,但會損害程序的可讀性,建議不要過多使用。強調說明 63例3.17 :64sizeof運算符用于計算其操作數的長度,即其在內存中所占的字節數。第3章C語言sizeof運算符 65例3.18 :66第3章 C語言類型轉換1.自動轉換自動轉換:在表達式中進行運算時,通常會將不同類型的數據混合使用,此時就會關系到類型轉化的問題。C語言中將對其類型自動進行轉換,這種轉換一語言中將對其類型自動進行轉換,這種轉換一般是般是“向上向上”的,即由占存儲空間少的數據類的,即由占存儲空間少的數據類型向占存儲空間多的數據類型轉換。型向占存儲空間多的數據類型轉換。 67所謂轉換是向上的,即char、short型都轉化為int型,int型轉換為unsigned型,unsigned型轉換為long型,long型和float型轉

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論