面向?qū)ο笳n件(第二章).ppt_第1頁
面向?qū)ο笳n件(第二章).ppt_第2頁
面向?qū)ο笳n件(第二章).ppt_第3頁
面向?qū)ο笳n件(第二章).ppt_第4頁
面向?qū)ο笳n件(第二章).ppt_第5頁
已閱讀5頁,還剩77頁未讀, 繼續(xù)免費閱讀

VIP免費下載

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

文檔簡介

第二章 基本數(shù)據(jù)類型,基本數(shù)據(jù)類型,第二章 基本數(shù)據(jù)類型,2.1 基本數(shù)據(jù)類型 2.2 數(shù)據(jù)在計算機中的存儲 2.3 數(shù)據(jù)類型選擇的原則 2.4 表達式及運算符 2.5 數(shù)據(jù)類型轉(zhuǎn)換,2.1 基本數(shù)據(jù)類型,整數(shù)型 字符型 字符串 實數(shù)型 基本數(shù)據(jù)類型的修飾符,基本數(shù)據(jù)類型-整型,整型常數(shù) 整型常量標識符 整型變量 整型的擴展,整型-整型常數(shù),十進制數(shù) 12,0,23,-127, 有正負數(shù)之分 八進制數(shù) 012,045,063,059,078 十六進制數(shù) 無負數(shù) 0xef,0x12,0x445 0XC3,0Xed,0Xe2 注: 用不同的前導(dǎo)符來區(qū)別不同進制:八進制數(shù)前加0,十六進制數(shù)前加0x 十進制有負數(shù),八、十六進制無負數(shù),整型-整型常量標識符,用一些符號(常量標識符)表示常數(shù) 用const 關(guān)鍵字來定義一個常數(shù) 如: const int STUD_NUM=10; const int PAGES=421; const int SECONDS=0x12f; const int MONTHS=023; 注: 常量標識符一般用大寫,整型-整型變量,int age; int work_hours=8; /可以在定義時給出初始值 int total_hours=8+work_hours; /表達式可作初值 age=18*3-2; /在使用時可以賦值 work_hours+; total_hours+=(50-age)/10; 注: 一般用小寫字母表示變量,整型-整型的擴展1,整型的擴展-long int (長整型) long int 能表示的數(shù)據(jù)范圍一般比int寬 long int 簡稱 long long int 類型的常數(shù)表示為: 12L,23l,4432l,0xefl,0537L long int 類型的變量和常量定義: long l_var; const long LC_VALUE=10;,整型-整型的擴展2,整型的擴展-short int (短整型) short int 能表示的數(shù)據(jù)范圍一般比int窄 short int 簡稱 short short int 類型的變量和常量定義: short s_var; const short SC_VALUE=20;,基本數(shù)據(jù)類型-字符型,字符常數(shù) 字符常量、變量標識符 特殊的字符,字符型-字符常數(shù),字符常數(shù) az; AZ; 09; !,#,%,&, 注:字符必須用單引號括起來,否則會認為是標識符、數(shù)字或其它符號,字符型-字符常量、變量,字符常量標識符 const char BEST=A; const char NEWLINE=n; 字符變量標識符 char c; char grade=E; grade=E-4; /字符變量可以和整數(shù)一樣運算 c=get_char( ); grade=A+1;,字符型-特殊的字符,特殊字符: -轉(zhuǎn)義字符, 后的字符意義作了改變 轉(zhuǎn)義字符有以下幾種用法: 1. 控制字符 2. 有特殊含義的符號的表示 3. 與八、十六進制數(shù)值結(jié)合使用,字符型-轉(zhuǎn)義字符1,控制字符 n 換行符號(newline) 0x0A f 換頁符號(formfeed) 0x0C a 響鈴符號(bell) 0x07 b 回格符號(backspace) 0x08 0 空字符(null) 0x00 例:cout “aoperatingtsystemn”; 響鈴的同時,顯示: operating system,再輸出時換行,字符型-轉(zhuǎn)義字符2,有特殊含義的符號的表示 反斜杠 0x5c 單引號 0x27 “ 雙引號 0x22 ? 問號 0x3f 空格符 0x20 例:要輸出提示信息:“Please enter “Yes” or “No”:” 可寫成:cout “Please enter “Yes” or “No”:”,字符型-轉(zhuǎn)義字符3,與八、十六進制數(shù)值結(jié)合使用,用來表示相應(yīng)數(shù)值的ASCII碼 ddd 13位八進制數(shù) 000377 xhh 12位十六進制數(shù) x00xff 說明:十六進制以x開頭,八進制不用 例: char ch=A; char ch=101; char ch=x41;,轉(zhuǎn)義字符小結(jié),轉(zhuǎn)義字符以反斜杠開頭,后跟相應(yīng)字符 轉(zhuǎn)義字符要用單引號括起來,代表一個字符 例:char c1=n; /換行符 char c2=007; /響鈴符 char c3=B; char c4=66; char c5=x42; /以上三個語句等價,字符型-補充說明,字符數(shù)據(jù)在內(nèi)存中以ASCII碼存儲,即以整數(shù)表示 C+中字符和整數(shù)之間可以互用,字符變量可以和整數(shù)一樣運算 例: int a=b; /在內(nèi)存中以整數(shù)表示 char c=97; 輸出:cout a endl; cout c endl; /輸出不一樣 結(jié)果:98 a,字符串,C+字符串特點: 由雙引號括起來的字符序列 以空字符0(null)結(jié)尾 以數(shù)組形式表示及存儲 例: “Hello” “a” 與 a “ ” 空串,只有1個null字符 字符串常量 const char MESSAGE20=“This is for you!”; const char BEST=“A”; / const char BEST=A; 注:左BEST是字符串常量標識符,右BEST是字符常量標識符,基本數(shù)據(jù)類型-實數(shù)型,浮點型 float 表示數(shù)據(jù)的范圍是 3.4E+383.4E+38 有效數(shù)字是7位 雙精度型 double 表示數(shù)據(jù)的范圍是 1.7E+3081.7E+308 有效數(shù)字是15位 長雙精度型 long double 表示數(shù)據(jù)的范圍是 3.4E+49321.1E+4932 有效數(shù)字是19位,實數(shù)型-常數(shù)表示法,定點數(shù)表示法 (小數(shù)表示法) 浮點數(shù):-0.2113f,12.34f 雙精度數(shù):0.00213,.224 長雙精度數(shù):-0.00213L,1.234L 指數(shù)表示法 1.23e10=1.23X1010 8.84E123=8.84X10123 注:默認是雙精度型,實數(shù)型-常量、變量,浮點常量 const float PI=3.141593; const double L_PI=3.14159265; 浮點變量 float wages=3.34e23; double d_wages; long double ld_wages; d_wages=5600*1.1; ld_wages=d_wages/2.1;,基本數(shù)據(jù)類型-布爾型,布爾型(bool)數(shù)只有兩個值:true和false 這兩個值滿足: !false=true 非假即真 !true=false 非真即假 例: bool end; end=true; /end具有值true,基本數(shù)據(jù)類型-布爾型,條件表達式將返回布爾型值 bool end=false; end=true; end=(ab),基本數(shù)據(jù)類型的修飾符,long,short,signed,unsigned long 修飾 int 和 double short 修飾 int signed 修飾 int 和 char unsigned 修飾 int 和 char 注:int和char默認為signed,2.2 數(shù)據(jù)在計算機中的存儲,計算機內(nèi)存單元的單位是字節(jié) 不同的計算機中,同一數(shù)據(jù)類型占用的 空間不一定相同 數(shù)據(jù)占用內(nèi)存字節(jié)的多少,決定了其能表示的數(shù)據(jù)的范圍 計算機對內(nèi)存中存放的同樣信息的解釋會因其所表示的數(shù)據(jù)類型的不同而不同,以字節(jié)(Byte)為單位,不同數(shù)據(jù)類型占用不同數(shù)目的字節(jié),內(nèi) 存 單 元,短整數(shù)占兩個字節(jié)(16bit),符號位 整數(shù)值 整數(shù)值 0000 0001 1100 1000 0000 0001 1100 1000,短整數(shù)(short):456=0x01c8,signed int,浮點數(shù)占4個字節(jié)(32bit),浮點數(shù):456.321=0.456321*103 尾數(shù):0.456321 用24bit存放 指數(shù):3 用7bit存放 正負數(shù):+ 用1bit存放,指數(shù)(7位),尾數(shù)(24位),符號位,雙精度數(shù)占8個字節(jié)(64bit),尾數(shù)(53位),指數(shù)(10位),符號位,雙精度數(shù):456.321= 0.456321*103 尾數(shù):0.456321 用53位存放 指數(shù):3 用10位存放 正負數(shù):+ 用1位存放,字符占1個字節(jié)(8bit),字符:A 以ASCII編碼的值存放 A的ASCII編碼為65(0x41),0 1 0 0 0 0 0 1,4 1,字符串所占字節(jié)數(shù)等于字符數(shù)加1,字符串:“HELLO” 每個字符占一個字節(jié),共六個字節(jié) 字符串以空字符n結(jié)尾,ASCII碼為0,0 1 0 0 1 0 0 0,0 1 0 0 0 1 0 1,0 1 0 0 1 1 0 0,0 1 0 0 1 1 0 0,0 1 0 0 1 1 1 1,0 0 0 0 0 0 0 0,H E L L O n,H=0X48 E=0X45 L=0X4C L=0X4C O=0X4F 0X00,布爾型數(shù)占1個字節(jié)(8bit),0 0 0 0 0 0 0 1,0 0 0 0 0 0 0 0,true false,簡單數(shù)據(jù)類型的取值范圍,數(shù)據(jù)類型 位數(shù) 數(shù)值范圍 char 8 -128127 short 16 -215(215-1) int 32 -231(231-1) long 32 -231(231-1) unsigned char 8 0255 unsigned short 16 065535 unsigned int 32 0(232-1) unsigned long 32 0(232-1),浮點數(shù)的取值范圍,數(shù)據(jù)類型 位數(shù) 數(shù)值范圍 精度 float 32 -3.4E383.4E38 7 位 double 64 -1.7E3081.7E308 15位 long double 80 -3.4E49221.1E4922 19位,2.3 數(shù)據(jù)類型選擇的原則1,根據(jù)所表示的數(shù)據(jù)的類型選擇 例如: 年齡、數(shù)目整數(shù) 長寬高、面積浮點數(shù) 名字、地址字符數(shù)組 真或假、是或非布爾數(shù) 學(xué)生、書結(jié)構(gòu)或類,數(shù)據(jù)類型選擇的原則2,根據(jù)所表示的數(shù)據(jù)的范圍選擇 例如: 年齡: short 成績: unsigned short 階乘: long或float或double 只有兩個值:bool 只有幾個值:enum,2.4 表達式及運算符,什么是表達式 表達式的構(gòu)成 介紹幾種表達式及運算符,表達式,下面都是表達式 1+2+3 /算術(shù)表達式 perimeter=2*PI*radius /賦值表達式 cinnum /輸入表達式 cout=d) /邏輯表達式,表達式的定義,表達式是由操作數(shù)和操作符(運算符)按照一定語法規(guī)則構(gòu)成的符號序列,表達式的構(gòu)成,表達式與語句 表達式中的操作數(shù) 表達式中的運算符 表達式的語法規(guī)則 表達式的值,表達式與語句,表達式加上分號構(gòu)成表達式語句 1+2+3; perimeter=2*PI*radius; cinnum; cout=d);,表達式中的操作數(shù),操作數(shù) 基本數(shù)據(jù)類型 -整型數(shù) -實型數(shù) -字符 構(gòu)造數(shù)據(jù)類型 -字符串、數(shù)組、指針、引用、結(jié)構(gòu)、對象 子表達式,表達式中的操作數(shù),1+2+3; /整型常量 perimeter=2*PI*radius; /浮點型變量 cinnum; /類的對象 cout=d); /子表達式,表達式中的運算符,算術(shù)運算符: +、-、*、/、% 賦值運算符: = 邏輯運算符: &、|、! 關(guān)系運算符: =、!=、=、 輸入運算符: 輸出運算符: 其它:?:、,、+=、()、*、&、等,表達式中的運算符,1+2+3; /算術(shù)運算符perimeter=2*PI*radius; /賦值運算符cinnum; /輸入運算符cout=d); /比較、邏輯運算符,表達式中的運算符,單目、雙目、三目運算符 單目:-a !a a+ -a 雙目:a+b a=b a&b 三目:a ? b : c,表達式的語法規(guī)則,每種運算符操作的數(shù)據(jù)類型和運算結(jié)果有規(guī)定,如: a%b 操作數(shù)只能是整型 &、|、! 運算結(jié)果是布爾型 a b 運算結(jié)果是布爾型 a+ 運算結(jié)果與a的類型相同,表達式的語法規(guī)則,每種運算符的操作方式有其特定的規(guī)則 語法 a + b 不能寫成 +ab, ab+ 結(jié)合性 a + b c 先執(zhí)行 a + b 優(yōu)先級 1+3*2 結(jié)果為7,不是8,運算符的結(jié)合性,表達式中出現(xiàn)相同級別的運算符時,先執(zhí)行左邊的運算符,則稱該運算符為左結(jié)合,否則為右結(jié)合 a+b-c 左結(jié)合 (a+b)-c a=b=c 右結(jié)合 a=(b=c) 注:絕大多數(shù)運算符是左結(jié)合,運算符的優(yōu)先級規(guī)則,先乘除、后加減 4+5*6=34 先計算、后賦值 c=ab&bc 括號改變優(yōu)先級 area=(a+b)*h/2,表達式的值,大多數(shù)表達式具有值 表達式的值可能是任意數(shù)據(jù)類型 10+20*2 的值是整數(shù) 50 radius=3.14*2/4 的值是小數(shù) 1.57 A 的值是字符 A cingrade 的值是輸入流對象 cin coutgrade 的值是輸出流對象 cout,表達式的值,由于表達式具有值,所以表達式可以嵌套 a=b=5 等價于 a=(b=5) b+(c=5) 等價于 c=5, b+5 cinab 等價于 cina; cinb;,介紹幾種表達式及運算符,1、賦值表達式 2、賦值運算符 3、逗號表達式 4、sizeof 運算 5、表達式與運算符的補充說明 6、表達式與運算符小結(jié),賦值表達式,表達式1=表達式2; 賦值構(gòu)成一個表達式 賦值表達式的值是賦值運算符左邊表達式的值 perimeter=2*PI*radius; a=b=c*2;,賦值表達式-左值,左值是能出現(xiàn)在賦值運算符左邊的表達式 左值具有兩個條件: 1、具有存放數(shù)據(jù)的空間 3=3;/不允許,常量沒有存儲空間 2、該空間是允許修改的 const int CI=10; CI=15; /不允許,常量的空間不能修改,賦值表達式-左值,變量是左值 i=8 賦值表達式是左值 j=m+n 返回引用的函數(shù)是左值 (x=max(5,7)+=3 /等價于: (x=max(5,7)= (x=max(5,7)+3,賦值表達式-右值,表達式1=表達式2; 右值是能出現(xiàn)在賦值運算符右邊的表達式 右值表達式要求具有值 左值表達式可以作為右值表達式,賦值表達式-右值,int a, b; void func( ); /函數(shù)不返回值 a=(b=10); /b=10是左值表達式 a=b; /b可以作為右值 a=func( ); /錯誤!函數(shù)不返回值,賦值運算符,變量和常量初始化不是賦值 const int CI=10; /初始化 int ivalue=10; /初始化 ivalue=20; /賦值,賦值運算符-賦值縮寫,a+=b 等價于 a=a+b a-=b 等價于 a=a-b a*=b 等價于 a=a*b a/=b 等價于 a=a/b a%=b 等價于 a=a%b,賦值表達式-賦值兼容,賦值運算符兩邊的表達式要求類型兼容 int i=0x1032; char c; c=i; /將整數(shù)賦給字符型時會丟失一些信息 coutc; /輸出字符2 cout(int)c; /輸出十進制數(shù)50,逗號表達式,表達式1,表達式2,表達式n 逗號表達式具有值 其值是表達式n的值 (即最右邊表達式的值是逗號表達式的值),逗號表達式,int a, b, c, d; d=(a=1, b=a+2, c=b+3); coutdendl; /輸出結(jié)果為:6 逗號表達式可以用于函數(shù)調(diào)用中的參數(shù) 例如: func(n, (j=1, j+4), k);,Sizeof 運算,sizeof (類型名) 或 sizeof (表達式) 計算并返回操作數(shù)所占的內(nèi)存空間 單位:字節(jié) sizeof (int); /值為4 sizeof (char); /值為1 sizeof (3.14*2); /值為8 sizeof (3.14L*2); /值為10,表達式與運算符的補充說明,“=” 與 “=” 前者“賦值”,后者“等于” “ /結(jié)果為4,表達式與運算符的補充說明,避免副作用 “+” 、 “ -”、 “ = ” 具有副作用 例如: int a=3, b=5, c; c=a*b+b; coutcendl; /編譯器不同,結(jié)果不同 辦法:將復(fù)雜表達式分解成多個簡單表達式,表達式小結(jié),表達式具有值 表達式具有類型 為計算表達式的值,需要知道每個運算符的含義,運算符之間的結(jié)合性和優(yōu)先級 為確定表達式的結(jié)果類型,需要知道操作數(shù)的類型及類型之間的轉(zhuǎn)換關(guān)系,表達式小結(jié),一元運算符的表達式結(jié)果類型與操作數(shù)的類型相同 算術(shù)運算符的表達式結(jié)果類型與進行類型轉(zhuǎn)換后的操作數(shù)相同,類型轉(zhuǎn)換會使兩個操作數(shù)的類型相同 關(guān)系、邏輯運算符的表達式結(jié)果其值為0或1,表達式小結(jié),賦值表達式的結(jié)果類型是左值的類型 條件表達式(E1E2?E3:E4)的結(jié)果類型是E3或E4的類型 sizeof (表達式)的結(jié)果類型是int型,單位是字節(jié) 逗號表達式的結(jié)果類型是最后一個表達式的類型 除常量表達式外,表達式的求值都在程序運行時進行,而其結(jié)果類型是在編譯時靜態(tài)決定,2.5 數(shù)據(jù)類型轉(zhuǎn)換,類型轉(zhuǎn)換的概念 賦值運算的類型轉(zhuǎn)換 隱式類型轉(zhuǎn)換 顯式類型轉(zhuǎn)換 類型轉(zhuǎn)換的不安全性,數(shù)據(jù)類型轉(zhuǎn)換,C+遇到兩個類型不同的數(shù)進行運算時,須先將它們轉(zhuǎn)換成相同的數(shù)據(jù)類型,然后再進行運算 3+1.0 轉(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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論