C語言課件(基本數據類型)_第1頁
C語言課件(基本數據類型)_第2頁
C語言課件(基本數據類型)_第3頁
C語言課件(基本數據類型)_第4頁
C語言課件(基本數據類型)_第5頁
已閱讀5頁,還剩25頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

1、基本數據類型基本數據類型引例引例變量與常量變量與常量預備知識預備知識內儲存器的組織內儲存器的組織數據類型數據類型基本數據類型基本數據類型整數類型整數類型字符字符浮點類型浮點類型C C語言程序設計語言程序設計引例引例引例引例問題問題計算任意一個圓的面積。計算任意一個圓的面積。源程序源程序(cw02-01.c)基本數據類型基本數據類型#include void main() float r, area; /定義變量定義變量 scanf(“%f”,&r); /讀取輸入的半徑讀取輸入的半徑 area = 3.14*r*r; /計算圓的面積計算圓的面積 printf(“area=%f”,area

2、); /輸出輸出1area=3.140000areararea = r2變量與常量變量與常量數據數據(Data)程序需要使用數據。程序需要使用數據。數據是信息的載體。數據是信息的載體。數據有多種形式:數、字符、圖片等。數據有多種形式:數、字符、圖片等。常量常量(Constants)在程序運行之前可以預先設定,并在整個運行過程中沒有在程序運行之前可以預先設定,并在整個運行過程中沒有變化的數據。變化的數據。例如引例中的圓周率例如引例中的圓周率3.14。變量變量(Variables)在程序運行過程中可能變化或被賦值的數據。在程序運行過程中可能變化或被賦值的數據。例如引例中的半徑和面積。例如引例中的半

3、徑和面積?;緮祿愋突緮祿愋蛿祿愋蛿祿愋蛿祿愋偷淖饔脭祿愋偷淖饔脹Q定數據的存儲方式和占用的存儲空間的大小。決定數據的存儲方式和占用的存儲空間的大小。決定可以進行的操作。決定可以進行的操作。C C語言的數據類型語言的數據類型基本類型基本類型整型整型(integer),字符型,字符型(character),浮點型,浮點型(floating-point),枚舉類型,枚舉類型(enumeration)構造類型構造類型結構體結構體(structure),共用體,共用體(union),數組,數組(array)指針類型指針類型(pointer)空類型空類型(void)基本數據類型基本數據類型位

4、、字節和字位、字節和字內存儲器的組織內存儲器的組織基本數據類型基本數據類型位(位(bitbit):最小的:最小的存儲單位,可以容納存儲單位,可以容納兩個值之一,即兩個值之一,即0或或1。200020012002字節(字節(ByteByte):基本:基本的存儲單位,的存儲單位,8位。位。字(字(wordword):自然的:自然的存儲單位,包含若干存儲單位,包含若干個字節。例如個字節。例如32位機位機的一個字就是的一個字就是32位。位。地址地址:以字節為:以字節為單位從單位從0開始編開始編號。號。整數的存儲方式整數的存儲方式有符號的正整數有符號的正整數在內存中以在內存中以二進制補碼二進制補碼形式存

5、放。形式存放。正整數的補碼與原碼相同。正整數的補碼與原碼相同。例如:例如:10基本數據類型基本數據類型符號位符號位0 0 0 0 0 0 0 00 0 0 0 1 0 1 00000000000001010RAM數軸數軸0215-1=32767可表示的數的范圍可表示的數的范圍-215=-32768整數的存儲方式整數的存儲方式有符號的負整數有符號的負整數在內存中以在內存中以二進制補碼二進制補碼的形式存放。的形式存放。例如:例如:-10基本數據類型基本數據類型符號位符號位1 1 1 1 1 1 1 11 1 1 1 0 1 1 01111111111110110RAM-10的原碼的原碼1 0 0

6、0 0 0 0 00 0 0 0 1 0 1 01 1 1 1 1 1 1 11 1 1 1 0 1 0 11 1 1 1 1 1 1 11 1 1 1 0 1 1 0按位取反按位取反加一后得到加一后得到 -10的補碼的補碼符號符號位不位不變變整數的存儲方式整數的存儲方式無符號整數無符號整數所有二進制位都存放數值。所有二進制位都存放數值。例如:例如:65535基本數據類型基本數據類型1 1 1 1 1 1 1 11 1 1 1 1 1 1 11111111111111111RAM0216-1=65535可表示的數的范圍可表示的數的范圍整數的類型整數的類型C C語言提供多種整數類型語言提供多種整

7、數類型為程序員提供了針對不同用途的多種選擇。為程序員提供了針對不同用途的多種選擇?;緮祿愋突緮祿愋皖愋兔Q類型說明符字節數數值范圍基本整型基本整型signed int4-2147483648 2147483647短整型短整型signed short int2-3276832767長整型長整型signed long int4-2147483648 2147483647無符號基本整型無符號基本整型unsigned int404294967295無符號短整型無符號短整型unsigned short int2065535無符號長整型無符號長整型unsigned long int40429496

8、7295C標準只規定:標準只規定:short int long最大最小值參考最大最小值參考僅供參考,實際值與所僅供參考,實際值與所使用的操作系統、編譯使用的操作系統、編譯系統、機器有關。系統、機器有關。整型常量整型常量整型常量整型常量有三種形式:有三種形式:十進制十進制(decimal)整數整數12 65 65535八進制八進制(octal)整數:帶前綴整數:帶前綴 0(zero)014 0101 0177777十六進制十六進制(hexadecimal)整數:帶前綴整數:帶前綴 0 x 或或 0X0 xc 0 x41 0 xffff默認類型是默認類型是int,即有符號的基本整型。,即有符號的基

9、本整型。可以加上后綴可以加上后綴 u 或或 U 表示無符號整數,或者表示無符號整數,或者 l 或或 L 表示長表示長整數。整數。0 xb5Lu基本數據類型基本數據類型RAM整型變量整型變量聲明變量聲明變量(Declaration)變量在使用之前必須被聲明。變量在使用之前必須被聲明。聲明語句的格式:聲明語句的格式:舉例舉例基本數據類型基本數據類型 ,.;int counter;int width, height;short x, y;long number;變量聲明創建了變變量聲明創建了變量:為變量分配了量:為變量分配了存儲空間。存儲空間。height整型變量整型變量初始化初始化(Initial

10、ize)變量變量為變量賦一個初始值。為變量賦一個初始值。可以在聲明語句中初始化變量??梢栽诼暶髡Z句中初始化變量。舉例舉例變量獲得值的方法變量獲得值的方法直接賦值直接賦值輸入輸入初始化初始化基本數據類型基本數據類型int counter = 0;int width = 352, height = 288;初始化式初始化式RAM288height整型變量整型變量輸出變量的值輸出變量的值可以使用可以使用printf()函數。函數。與與int類型對應的格式說明符是類型對應的格式說明符是%d。舉例舉例(cw02-02a.c)基本數據類型基本數據類型#include void main() int a,

11、b; a=32767; b=-32768; printf(a=%d,b=%dn, a, b);a=32767,b=-32768整數的溢出整數的溢出溢出溢出整數太大,超出了整數類型的數值范圍。整數太大,超出了整數類型的數值范圍。使用使用printf() 時與時與unsigned int類型對應的格式說明符是類型對應的格式說明符是%u。舉例舉例(cw02-02b.c)基本數據類型基本數據類型#include void main() int a, b; unsigned c, d; a = 2147483647; b = a+1; c = 4294967295; d = c+1; printf(a=

12、%d,b=%dn, a, b); printf(c=%u,d=%u, c, d);a=2147483647,b=-2147483648c=4294967295,d=0?整數的溢出整數的溢出溢出溢出結果分析結果分析結論結論a+1 的結果(的結果(2147483648) 超出了基本整型變量超出了基本整型變量 b 所能容納(表所能容納(表示)的數值范圍(示)的數值范圍(-21474836482147483647)。)。請分析請分析d的結果。的結果。基本數據類型基本數據類型0 1 1 1 1 1 1 1.1 1 1 1 1 1 11 0 0 0 0 0 0 0.0 0 0 0 0 0 0a(21474

13、83647)1 0 0 0 0 0 0 0.0 0 0 0 0 0 0a+1(2147483648)b(-2147483648)12加正數加正數減正數減正數字符的存儲方式字符的存儲方式字符編碼字符編碼計算機使用一種數字編碼(整數)來表示字符,每一個字計算機使用一種數字編碼(整數)來表示字符,每一個字符都對應一個特定的整數。符都對應一個特定的整數。常用的編碼是常用的編碼是ASCII(美國信息交換用標準碼)。(美國信息交換用標準碼)。7位二進制數,十進制碼值范圍從位二進制數,十進制碼值范圍從0到到127。一般用一個字節保存,最高位為一般用一個字節保存,最高位為0。字符的存儲方式與整數相同字符的存儲

14、方式與整數相同舉例舉例字母字母A的的ASCII碼值為碼值為65,那么在內存中以那么在內存中以65的二進制形式存儲,的二進制形式存儲,且占一個字節。且占一個字節?;緮祿愋突緮祿愋?100000101000001RAM字符的類型和字符變量字符的類型和字符變量C語言的字符類型:語言的字符類型:char占一個字節;占一個字節;可視為一個有符號的整數??梢暈橐粋€有符號的整數。舉例舉例(cw02-03.c)基本數據類型基本數據類型#include void main() char c1, c2; /聲明字符變量聲明字符變量 c1 = 97; /把一個整數賦值給字符變量把一個整數賦值給字符變量 c2

15、 = c1-32; /字符變量可以進行算術運算字符變量可以進行算術運算 printf(c1=%c,c2=%cn, c1, c2); printf(c1=%d,c2=%dn, c1, c2);c1=a,c2=Ac1=97,c2=65字符常量字符常量字符常量字符常量用單引號括起來的一個字符。用單引號括起來的一個字符。x 9 +C語言將字符常量視為語言將字符常量視為int類型。類型。舉例舉例(cw02-04.c)如果如果int類型為類型為16位,位,char類型為類型為8位,位,那么對于那么對于bc,將把,將把b和和c的的ASCII碼值存儲在兩個字節中,碼值存儲在兩個字節中,并把并把c賦值給變量賦值

16、給變量c2。注意:不同系統處理方式不同,結果不同。注意:不同系統處理方式不同,結果不同?;緮祿愋突緮祿愋蚦har c1, c2;c1=a;c2=bc;0 1 1 0 0 0 0 1c10 1 1 0 0 0 1 1c20 1 1 0 0 0 1 10 1 1 0 0 0 1 0bcLH97999998字符常量字符常量轉義字符轉義字符(escape character)指代一些特殊的字符。指代一些特殊的字符。(打印不出來的字符)(打印不出來的字符)舉例舉例(cw02-05.c)基本數據類型基本數據類型a 警報警報 反斜杠(反斜杠()b 退格退格? 問號(問號(?)f 走紙走紙 單引號(單

17、引號()n 換行換行“ 雙引號(雙引號(”)r 回車回車ooo 八進制值(八進制值(o表示一個八進制數字)表示一個八進制數字)t 水平制表符水平制表符xhh 十六進制值(十六進制值(h表示一個十六進制數字)表示一個十六進制數字)v 垂直制表符垂直制表符#include void main() printf(atbncbd100 x40n);abd浮點數的存儲方式浮點數的存儲方式浮點數浮點數浮點型數據在內存中按指數形式存放。浮點型數據在內存中按指數形式存放。例如:例如:314.15 = 3.1415102基本數據類型基本數據類型0 (3.14159)10 0 (2)10 數符數符 尾數部分尾數部

18、分 階符階符 階碼階碼 + 3.14159 10+2由此可見,尾數部分的寬度決定了有效由此可見,尾數部分的寬度決定了有效數字的個數(即精度),階碼部分的寬數字的個數(即精度),階碼部分的寬度決定了數值范圍。度決定了數值范圍。RAM科學計數法允許使用少量的科學計數法允許使用少量的數字表示很大范圍的數和很數字表示很大范圍的數和很小的數。小的數。浮點數的類型浮點數的類型浮點數也有多種類型浮點數也有多種類型類型名稱及典型大小類型名稱及典型大小基本數據類型基本數據類型類型名稱類型名稱類型說明符類型說明符字節數字節數有效數字有效數字數值范圍數值范圍單精度單精度float467(s)10-371038雙精度

19、雙精度double81516(s)10-30710308長雙精度長雙精度long double101819(s)10-4931104932S = 1參考參考僅供參考,實際值與所僅供參考,實際值與所使用的操作系統、編譯使用的操作系統、編譯系統、機器有關。系統、機器有關。數軸數軸0可表示的正數可表示的正數可表示的負數可表示的負數浮點型常量浮點型常量浮點型常量有兩種形式:浮點型常量有兩種形式:十進制形式十進制形式12.3 .65 0.指數形式:指數形式: 1.2e-2 .1E5 7E01.210-20.11057.0100默認類型是默認類型是double??梢约由虾缶Y可以加上后綴 f 或或 F 表示

20、表示float類型,或者類型,或者 l 或或 L 表示表示long double類型,否則該常量是類型,否則該常量是double類型。類型。2.3f 1.2L .1E5f基本數據類型基本數據類型浮點型變量浮點型變量浮點型變量的聲明和初始化浮點型變量的聲明和初始化舉例舉例基本數據類型基本數據類型float radius;double x = 0.0, y = 0.0;不能寫成:不能寫成:double x = y =0.0;浮點型變量浮點型變量浮點數的輸出浮點數的輸出使用使用printf()函數函數float和和double對應的格式說明符為對應的格式說明符為%f、%e。舉例舉例(cw02-06.

21、c)基本數據類型基本數據類型#include void main() float f; double d; f=33333.33333f; d=33333.3333333333; printf(f=%fnd=%f, f, d);f=33333.332031d=33333.333333有效數字位數是有限的,在可有效數字位數是有限的,在可表示的有效位之外的數字被舍表示的有效位之外的數字被舍去。因此可能會產生誤差。去。因此可能會產生誤差。浮點數的舍入誤差浮點數的舍入誤差浮點數的舍入誤差浮點數的舍入誤差舉例舉例(cw02-07.c)基本數據類型基本數據類型#include void main() float a, b; a=123456.789e5; b=a+20; printf(a=%fnb=%f, a, b);a=12345678848.000000b=12345678848.000000?浮點數的舍入誤差浮點數的舍入誤差浮點數的舍入誤差浮點數的舍入誤差結果分析結果分析基本數據類型基本數據類型a=123456.789e5;b=a+20;a+20的理論值應該是:的理論值應該是:12345678920但是,一個實型變量能夠保證的有效數字是但是,一個實型變量能夠保

溫馨提示

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

最新文檔

評論

0/150

提交評論