C教程從入門到精通cha(1).ppt_第1頁
C教程從入門到精通cha(1).ppt_第2頁
C教程從入門到精通cha(1).ppt_第3頁
C教程從入門到精通cha(1).ppt_第4頁
C教程從入門到精通cha(1).ppt_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章 數(shù)據(jù)類型、運(yùn)算符和表達(dá)式,基本數(shù)據(jù)類型 常量和變量 輸入輸出,運(yùn)算符和表達(dá)式 數(shù)據(jù)類型的轉(zhuǎn)換 構(gòu)造數(shù)據(jù)類型,基本數(shù)據(jù)類型,整型 字符型 浮點(diǎn)型,布爾型 空型,C+提供的基本數(shù)據(jù)類型,修飾符,C+還允許在不同的數(shù)據(jù)類型前面增加修飾符來更改基本類型的含義。 signed,unsigned,long和short。 其中int前面可以單獨(dú)使用siged,unsigned,long和short,并且signed和unsigned還可以與long和short組合在一起放在int前面 char前面可以單獨(dú)使用signed和unsigned; double前面可以單獨(dú)使用long。,C+的數(shù)據(jù)類型,整型,C+中定義了9種類型的整型,其中包括普通的整型(int)、長整型(long int)和短整型(short int)。這3種數(shù)據(jù)類型的前面還可以加上signed和unsigned修飾符來表示有符號整型和無符號整型。,符號整數(shù)和無符號整數(shù),#include using namespace std; void main() short int i; unsigned short int j; i=-1; j=i; cout“i=“i“;j=“j; ,字符型,在計(jì)算機(jī)中保存字符采用的是8位的ASCII碼。 要把字符用單引號擴(kuò)起來 x、0 如果所需的整數(shù)表示范圍很小(在128到127之間,或者在0到255之間),可考慮使用字符型數(shù)據(jù),字符型數(shù)據(jù)和整型數(shù)據(jù)的互換使用,#include using namespace std; void main() char c; short int i; c=A; i=c; cout“c=“c“;i=“i; ,浮點(diǎn)型,浮點(diǎn)型數(shù)據(jù)有3種:float,double和long double。 選用的數(shù)據(jù)類型應(yīng)該能夠表示所需要的數(shù)字,不能超出數(shù)據(jù)類型的表示范圍,還要考慮不同的數(shù)據(jù)類型可以表示數(shù)據(jù)的精度是否符合程序要求。 一種數(shù)據(jù)類型占用的內(nèi)存空間越大,能夠表示的數(shù)據(jù)范圍就越大,但是使用這樣的數(shù)字進(jìn)行計(jì)算的速度也越慢,因此在選擇數(shù)據(jù)類型的時(shí)候也不要沒有任何依據(jù)地使用long double類型表示數(shù)據(jù)以求保險(xiǎn)(一般的數(shù)字用double類型就足夠了)或者貪圖不必要的精度而損失了程序的運(yùn)行速度。,浮點(diǎn)數(shù)的舍入誤差,#include using namespace std; void main() float a,b; a=555555.555e5; b=a+40; cout“a=“a“;b=“b; ,布爾型,true和false 如果在布爾表達(dá)式中使用了數(shù)字,那么C+會把0作為false,非0的數(shù)字作為true。 如果在一個(gè)非布爾表達(dá)式中使用bool類型的數(shù)據(jù),那么會把true轉(zhuǎn)換為1,把false轉(zhuǎn)換為0。,bool和int類型數(shù)據(jù)的轉(zhuǎn)換,#include using namespace std; void main() bool b1,b2; int i,j; b1=true; i=20; j=b1; b2=i; cout“j=“j“;b2=“b2; ,空型,空型是一種十分特別的數(shù)據(jù)類型,它表示沒有任何值,因此并沒有一個(gè)實(shí)際存在的數(shù)字可以定義成void類型。 空型通常用在定義函數(shù)的時(shí)候表示一個(gè)函數(shù)沒有返回值。,常量和變量,常量 變量,常量,常量是一個(gè)具有實(shí)際值的量,并且其值在程序中不可以改變。,整型常量,整型常量用于表示整數(shù)。 可以使用十進(jìn)制、十六進(jìn)制、八進(jìn)制的整數(shù)。 十進(jìn)制的數(shù)字:10、25。 十六進(jìn)制整數(shù)需要在整數(shù)的前面加上一個(gè)0x:0x123 八進(jìn)制數(shù)需要在整數(shù)的前面加上一個(gè)O:O123 如果在程序中遇到了一個(gè)整數(shù)常量,通常認(rèn)為這個(gè)整數(shù)的數(shù)據(jù)類型是int。 如果要表示的數(shù)字超出了int類型數(shù)據(jù)的表示范圍,但是在unsigned int數(shù)據(jù)類型的表示范圍之內(nèi),就在這個(gè)數(shù)據(jù)類型中在數(shù)據(jù)的后面增加一個(gè)u后綴:3213213213u。 如果希望定義long int 類型的常量,在這個(gè)數(shù)據(jù)后加l后綴。,浮點(diǎn)型常量,如果在程序中遇到的一個(gè)數(shù)字帶有小數(shù)部分,那么C+編譯器就認(rèn)為這個(gè)數(shù)字是一個(gè)浮點(diǎn)型常量 12.3,1.0,0.123E2 浮點(diǎn)型數(shù)據(jù)具有舍入誤差,字符型常量,如果要定義字符型常量,只要用單引號將這個(gè)字符括起來就可以了。 x、2、#,字符串常量,把字符串用雙引號括起來 “Hello world!“ 一個(gè)字符串中的各個(gè)字符會占用內(nèi)存中連續(xù)的字節(jié),使用0字符表示字符串的結(jié)束。 a與“a“完全不同,符號常量,對于一些經(jīng)常使用并且有特定意義的常量允許采用符號的方式代替,在程序中所有使用這個(gè)常量的地方都可以使用這個(gè)符號常量進(jìn)行替代 使用C+提供的預(yù)編譯指令#define #define PI 3.14,變量,變量就是可以在程序中保存數(shù)據(jù)的量。由于這個(gè)量的值是可以改變的,因此被稱為變量,變量的命名,組成變量名的字符必須是大寫字母、小寫字母、數(shù)字或者下劃線,并且只能以字母或者下劃線開頭。 變量名不能使用C+語言保留的關(guān)鍵字,變量的聲明,數(shù)據(jù)類型 變量名列表; int Count; double Price,Total; 所有的變量在聲明時(shí)都要求指明它的數(shù)據(jù)類型。,變量的初始化,變量的初始化是指在變量被正式使用之前給變量一個(gè)初值。 (1) 在定義變量時(shí)給變量賦一個(gè)初值。 (2) 在使用變量之前給變量賦一個(gè)初值。 (3) 動態(tài)初始化。 int Count=2; double Price,Total; Price=28.7; Total=Price * Count;,常數(shù)型變量,使用const關(guān)鍵字創(chuàng)建常數(shù)型變量,這樣就可以把一個(gè)變量作為常數(shù)來使用 const 數(shù)據(jù)類型 變量名=表達(dá)式; const float PI=3.14;,輸 入 輸 出,cout cin,流,C+中定義的輸入輸出都是采用流的方式進(jìn)行的。 在輸入操作中,輸入數(shù)據(jù)以字節(jié)的形式從輸入設(shè)備(例如鍵盤、磁盤、網(wǎng)絡(luò)等)經(jīng)過輸入流流入計(jì)算機(jī)的內(nèi)存; 在輸出操作中,輸出數(shù)據(jù)又以字節(jié)的形式從內(nèi)存經(jīng)過輸出流流出到輸出設(shè)備(例如顯示器、打印機(jī)、磁盤、網(wǎng)絡(luò)等)。 在C+中,可以使用它提供的標(biāo)準(zhǔn)輸入對象cin和標(biāo)準(zhǔn)輸出對象cout實(shí)現(xiàn)輸入輸出操作。 cin表示的是C+的輸入流 cout表示的是C+的輸出流 cerr流用于實(shí)現(xiàn)標(biāo)準(zhǔn)的出錯(cuò)輸出 clog流實(shí)現(xiàn)cerr流的緩沖輸出。,cout,使用操作符來實(shí)現(xiàn)輸出, 的作用是實(shí)現(xiàn)向流中插入。 int i=10; cout“i=“i;,在輸出中使用轉(zhuǎn)義字符,#include using namespace std; void main() cout“abcdetfgbhijrkn“; cout“I say:“hello! “n“; cout“n的意思是回車換行n“; ,用t和setw()實(shí)現(xiàn)輸出,#include #include using namespace std; void main() cout“abctdef“endl; cout“ghitjkl“endl; coutsetw(6)“abc“setw(6)“def“endl; coutsetw(6)“ghi“setw(6)“jkl“endl; ,cin,輸入是從輸入流中提取數(shù)據(jù)的過程。默認(rèn)的輸入設(shè)備是鍵盤。 使用操作符。 int a; double b; cinab;,輸入一個(gè)矩形的長和寬,輸出矩形的面積,#include using namespace std; void main() double Length; double Width; coutLength; coutWidth; cout“Area=“Length*Widthendl; ,運(yùn)算符和表達(dá)式,算術(shù)運(yùn)算符和算術(shù)表達(dá)式 關(guān)系運(yùn)算符與關(guān)系表達(dá)式 邏輯運(yùn)算符和邏輯表達(dá)式 位運(yùn)算符和位運(yùn)算表達(dá)式 賦值運(yùn)算符和賦值表達(dá)式,逗號運(yùn)算符 sizeof運(yùn)算符,算術(shù)運(yùn)算符,使用自增和自減運(yùn)算符,算術(shù)表達(dá)式,算術(shù)表達(dá)式是由算術(shù)運(yùn)算符將運(yùn)算對象連接起來的式子 算術(shù)運(yùn)算符的優(yōu)先級,關(guān)系運(yùn)算符與關(guān)系表達(dá)式,關(guān)系運(yùn)算符是雙目運(yùn)算符,可以作用在除viod類型之外的任意類型的兩個(gè)操作數(shù)上。 由關(guān)系運(yùn)算符將運(yùn)算對象連接起來的式子就是關(guān)系表達(dá)式。 關(guān)系表達(dá)式的計(jì)算結(jié)果要么是true,要么是false。,使用關(guān)系運(yùn)算符,關(guān)系運(yùn)算符的優(yōu)先級,邏輯運(yùn)算符和邏輯表達(dá)式,邏輯運(yùn)算符作用在除void類型之外的所有數(shù)據(jù)上,得到的結(jié)果是bool類型的true或者false。 用邏輯運(yùn)算符連接運(yùn)算對象就可以得到邏輯表達(dá)式。,實(shí)現(xiàn)異或運(yùn)算,邏輯運(yùn)算符和關(guān)系運(yùn)算符的優(yōu)先級,位運(yùn)算符和位運(yùn)算表達(dá)式,位運(yùn)算就是指能夠直接對字節(jié)或者字的位進(jìn)行運(yùn)算的運(yùn)算符。按位運(yùn)算只能對整數(shù)類型和字符類型的數(shù)據(jù)進(jìn)行操作,不能用在其他類型的數(shù)據(jù)上。 由位運(yùn)算符將運(yùn)算對象連接起來的式子就是位運(yùn)算表達(dá)式。,按位與、或、異或和取反運(yùn)算符,按位與運(yùn)算的特點(diǎn)是只有參與運(yùn)算的兩個(gè)位都是1結(jié)果位才是1,否則結(jié)果位是0; 按位或運(yùn)算的特點(diǎn)是只有參與運(yùn)算的兩個(gè)位都是0結(jié)果位才是0,否則結(jié)果位是1; 按位異或運(yùn)算的特點(diǎn)是只有參與運(yùn)算的兩個(gè)位不同結(jié)果位才是1,否則結(jié)果位是0; 按位取反運(yùn)算符只有一個(gè)操作數(shù),對1取反結(jié)果是0,對0取反結(jié)果是1。,使用按位與、或和取反運(yùn)算符,使用異或運(yùn)算實(shí)現(xiàn)加密和解密,移位運(yùn)算符,右移位運(yùn)算符的作用是將一個(gè)數(shù)的所有位向右移動指定的位數(shù) 左移位運(yùn)算符的作用是將一個(gè)數(shù)的所有位向左移動指定的位數(shù) 運(yùn)算符的左邊是需要移位的數(shù)據(jù),而運(yùn)算符的右邊放置的是一個(gè)正整數(shù),表示要移位的位數(shù)。,使用移位運(yùn)算,賦值運(yùn)算符和賦值表達(dá)式,賦值運(yùn)算符就是一個(gè)等號(=),表示把“=”右面的表達(dá)式的值賦值給左邊的變量 變量=表達(dá)式 一個(gè)用賦值運(yùn)算符連接運(yùn)算對象的式子就是賦值表達(dá)式。,復(fù)合賦值運(yùn)算符,只要在賦值運(yùn)算符前面加上一個(gè)其他的二目運(yùn)算符,就形成了復(fù)合賦值運(yùn)算符。 +=、=、*=、/=、%=、=、&=、=、|=,逗號運(yùn)算符,使用逗號運(yùn)算符可以將幾個(gè)表達(dá)式連接起來,這樣構(gòu)成的表達(dá)式就是逗號表達(dá)式,整個(gè)表達(dá)式的值就是最右邊一個(gè)表達(dá)式的值。 a=(b=12,c=34,d=56); 首先計(jì)算b=12,然后計(jì)算c=34,再計(jì)算d=56。逗號表達(dá)式b=12,c=34,d=56的結(jié)果就是最右邊的表達(dá)式的值56,因此a的值是56。,sizeof運(yùn)算符,sizeof運(yùn)算符可以計(jì)算出數(shù)據(jù)類型所占用空間 sizeof運(yùn)算符有兩種使用方式: sizeof(數(shù)據(jù)類型) sizeof 變量名,使用sizeof運(yùn)算符,數(shù)據(jù)類型的轉(zhuǎn)換,賦值運(yùn)算中的數(shù)據(jù)類型轉(zhuǎn)換 表達(dá)式中的數(shù)據(jù)類型轉(zhuǎn)換,賦值運(yùn)算中的數(shù)據(jù)類型轉(zhuǎn)換,如果把一種類型的數(shù)據(jù)賦值給另一種類型的變量,那么在賦值的過程中就會發(fā)生數(shù)據(jù)類型的轉(zhuǎn)換。 由于各種數(shù)據(jù)類型所占用的內(nèi)存空間不同,因此當(dāng)占用內(nèi)存空間大的數(shù)據(jù)類型向占用內(nèi)存空間小的數(shù)據(jù)類型轉(zhuǎn)換的時(shí)候,會導(dǎo)致高位數(shù)據(jù)丟失的情況。,數(shù)據(jù)類型轉(zhuǎn)換導(dǎo)致的錯(cuò)誤,表達(dá)式中的數(shù)據(jù)類型轉(zhuǎn)換,在表達(dá)式中,如果各個(gè)運(yùn)算對象的數(shù)據(jù)類型不同,那么C+會自動把它們轉(zhuǎn)換成同樣的數(shù)據(jù)類型再進(jìn)行計(jì)算。 在進(jìn)行類型轉(zhuǎn)換的時(shí)候,都是從占用內(nèi)存空間少的數(shù)據(jù)類型向占用內(nèi)存空間多的數(shù)據(jù)類型進(jìn)行轉(zhuǎn)換。 C+還允許使用強(qiáng)制類型轉(zhuǎn)換來實(shí)現(xiàn)顯式的類型轉(zhuǎn)換 (數(shù)據(jù)類型)表達(dá)式,構(gòu)造數(shù)據(jù)類型,結(jié)構(gòu)體 共用體 枚舉 自定義數(shù)據(jù)類型,結(jié)構(gòu)體,將所有相關(guān)的數(shù)據(jù)項(xiàng)組合在一起,形成一種新的數(shù)據(jù)結(jié)構(gòu),稱為結(jié)構(gòu)體 struct 結(jié)構(gòu)體名 數(shù)據(jù)類型 成員名; . ; 使用“.”運(yùn)算符訪問一個(gè)結(jié)構(gòu)體變量的各個(gè)成員,這個(gè)運(yùn)算符稱為成員運(yùn)算符。 結(jié)構(gòu)體變量名.成員名,計(jì)算一個(gè)三角形的面積,共用體,將幾個(gè)不同數(shù)據(jù)類型的變

溫馨提示

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

最新文檔

評論

0/150

提交評論