面向對象課件(第二章).ppt_第1頁
面向對象課件(第二章).ppt_第2頁
面向對象課件(第二章).ppt_第3頁
面向對象課件(第二章).ppt_第4頁
面向對象課件(第二章).ppt_第5頁
已閱讀5頁,還剩77頁未讀, 繼續免費閱讀

下載本文檔

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

文檔簡介

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

溫馨提示

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

評論

0/150

提交評論