版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3講數(shù)據(jù)類型(中)
--變量、常量、運(yùn)算符、表達(dá)式
黃永峰
2015-9-28
yfhuang@對(duì)應(yīng)教材的第2章P19-30的內(nèi)容本講內(nèi)容變量的定義方法和內(nèi)涵常量在程序中的表示方法運(yùn)算符和表達(dá)式概念問(wèn)題1:計(jì)算機(jī)為不同類型數(shù)據(jù)分配不同大小內(nèi)存空間問(wèn)題2:計(jì)算機(jī)為不同類型數(shù)據(jù)采用不同二進(jìn)制編碼表示問(wèn)題3:計(jì)算機(jī)對(duì)不同類型數(shù)據(jù)采用不同運(yùn)算操作解決方案:為程序中數(shù)據(jù)定義不同類型的變量回顧:數(shù)據(jù)在計(jì)算機(jī)中如何存儲(chǔ)?
2.3程序中的變量定義定義變量的含義定義一個(gè)變量代表在內(nèi)存中分配一定大小的存儲(chǔ)單元。變量類型確定了數(shù)據(jù)編碼格式、存儲(chǔ)空間大小和能執(zhí)行操作變量空間兩屬性:存儲(chǔ)地址(或名稱)和存儲(chǔ)數(shù)據(jù)(存儲(chǔ)內(nèi)容);內(nèi)存地址用16進(jìn)制數(shù)表示,名稱用標(biāo)識(shí)符表示對(duì)變量訪問(wèn)(讀寫)2種方式:通過(guò)變量名或變量地址內(nèi)存結(jié)構(gòu)圖數(shù)據(jù)地址47F87…….ab47F9447F9560000000000000110例如:chara;intb=6;2.3.1變量定義方法變量的3屬性名稱:變量名規(guī)則(匈牙利命名法,見P28),如:intiCount數(shù)值:類型相一致;當(dāng)一個(gè)數(shù)據(jù)寫變量,只要沒(méi)有新的數(shù)據(jù)寫入,就總保存這個(gè)數(shù)據(jù)?!耙淮螌?、多次讀”存儲(chǔ)空間:大小+地址(編號(hào))變量定義的外延:“先定義,后使用”變量定義一般格式類型標(biāo)識(shí)符變量名列表;例如:intsum,SUM;變量的初始化:在定義變量同時(shí)給予初始值如,intsum=10;C++語(yǔ)言中的關(guān)鍵字(32個(gè))autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatiewhileC++語(yǔ)言中的編譯預(yù)處理命令(12個(gè)):
defineendifeliferrorlineincludeifdefifndefprogramundefifelse
2.3.1變量定義方法注意:不能用上述關(guān)鍵字或命令名做變量名整型變量分為四種類型基本型,用int表示短整型,用shortint或者short表示長(zhǎng)整型,用longint或者long表示無(wú)符號(hào)型,unsignedint(無(wú)符號(hào)整型)、unsignedshort(無(wú)符號(hào)短整型)和unsignedlong(無(wú)符號(hào)長(zhǎng)整型)
2.3.2C++整型變量(參考P20)注意:變量沒(méi)初始化而使用帶來(lái)問(wèn)題2.3.2C++整型變量(參考P20)注意:變量字長(zhǎng)和溢出問(wèn)題符號(hào)常量N2.3.2C++整型變量(參考P20)
一臺(tái)安裝了Windows95/98的機(jī)器,如果連續(xù)運(yùn)行49.7天沒(méi)有重啟,可能會(huì)引起死機(jī)。為什么呢?原因:?Windows95/98系統(tǒng)設(shè)置了一個(gè)計(jì)數(shù)器用于記錄系統(tǒng)已經(jīng)運(yùn)行了多少毫秒。這個(gè)計(jì)數(shù)器是一個(gè)unsignedlong類型的變量?unsignedlong的最大值是:4294967295?一天有24×3600×1000=86400000ms,4294967295/86400000=49.7天?當(dāng)系統(tǒng)運(yùn)行到49.7天時(shí),此計(jì)數(shù)器會(huì)溢出,引起死機(jī)小蛇吞掉大象的故事2.3.2C++整型變量(參考P20)實(shí)型變量分為單精度(float)和雙精度(double)兩種類型float內(nèi)存4個(gè)字節(jié);double占內(nèi)存8個(gè)字節(jié)float型變量只能接受7位有效數(shù)字;double型變量只能接受15位有效數(shù)字2.3.3實(shí)型變量(參考P23)2.3.3實(shí)型變量2.3.3實(shí)型變量的陷阱結(jié)論:f和123.456有類型差異不同類型實(shí)型數(shù)有精度差異實(shí)型數(shù)之間正確的比較方法有關(guān)浮點(diǎn)數(shù)的精度問(wèn)題123.456000的二進(jìn)制,小數(shù)位為無(wú)窮位…..2.3.4字符和布爾性變量字符和布爾變量:在內(nèi)存中占一個(gè)字節(jié)字符變量存放字符的ASCII碼值,例:字符‘A’在內(nèi)存中存放的是65;布爾變量存儲(chǔ)1或0;字符變量定義和初始化charx1,ch1=’x’;布爾變量定義和初始化boolc1,c2=true;c3=1;提問(wèn):ch1=“x”對(duì)嗎?為啥呢2.3.5常變量常變量:又稱為只讀變量(Read-only-variable)是保護(hù)數(shù)據(jù)安全的機(jī)制,防止意外修改定義形式:const類型變量名;例如:constinta=3;constfloatb=3.14*2;參考P31常量:在編程時(shí)用來(lái)對(duì)變量賦值或初始化,或直接參加表達(dá)式運(yùn)算。例如,inta,a=3;charc=‘a(chǎn)’;a=a+4;類型:數(shù)值常量(整型常量,實(shí)型常量)、字符常量和符號(hào)常量2.4程序中的常量表示2.4常量表示-實(shí)型數(shù)的表示注意:E表示的意義(1)單撇號(hào)表示法:用一對(duì)單撇號(hào)括起來(lái)的一個(gè)字符,如‘a(chǎn)’,‘c’,‘A’,‘?’等單撇號(hào)中的單個(gè)字符。但不能是單撇號(hào)或反斜杠:即‘’’、‘\’都是不合法的2.4程序中的常量表示
--字符型常量的表示P23(2)轉(zhuǎn)義字符表示法:用斜杠加一個(gè)字符或16進(jìn)制數(shù)表示字符形式\n\t\b\v\r字符形式\f\\\ddd\‘\xhh含 義換行橫向跳格(跳到下一個(gè)輸出區(qū)域)豎向跳格退格回車含 義走紙換行反斜杠字符\單引號(hào)‘3位八進(jìn)制數(shù)所代表的字符2位十六進(jìn)制數(shù)所代表的字符利用\ddd轉(zhuǎn)義字符,可以表示任何ASCII碼字符問(wèn)題:‘\101’==‘A’嗎?為什么呢2.4程序中的常量表示
--字符型常量的表示P23結(jié)論:字符型數(shù)據(jù)和整型數(shù)據(jù)可以通用提問(wèn):引入符號(hào)常量有什么好處?2.4程序中的常量表示
--符號(hào)常量(P26)提問(wèn):常變量與符號(hào)常量有區(qū)別嗎?符號(hào)常量在編譯時(shí)被替換掉,不分配存儲(chǔ)空間常變量編譯時(shí)分配存儲(chǔ)空間,并檢測(cè)類型,因此更安全常變量是C++對(duì)C的改進(jìn),因此更好用符號(hào)常量常常量問(wèn)題:“x”=‘x’嗎,為什么呢?2.4程序中的常量表示
--字符串常量的表示p25字符串常量:用雙撇號(hào)括起來(lái)的多個(gè)字符序列,如:“zhangsan”、“student”,“x”,”hello”等,字符串的字符數(shù)為字符串長(zhǎng)度系統(tǒng)在每一個(gè)字符串的末尾都自動(dòng)加一個(gè)“字符串結(jié)束標(biāo)志”,即‘\0’2.4程序中的常量表示
--字符串常量的表示p252.5運(yùn)算符和表達(dá)式運(yùn)算符:C++豐富運(yùn)算符(共44個(gè));按功能可分為13類
算術(shù)運(yùn)算符+、-、*、/、%關(guān)系運(yùn)算符>、<、==、>=、<=、!=邏輯運(yùn)算符!、&&、||位運(yùn)算符<<、>>、~、|、∧、&賦值運(yùn)算符=條件運(yùn)算符?:逗號(hào)運(yùn)算符,指針運(yùn)算符*、&求字節(jié)數(shù)運(yùn)算符Sizeof,例:sizeof(int)或sizeof(變量)強(qiáng)制類型轉(zhuǎn)換運(yùn)算符(類型)分量運(yùn)算符.(點(diǎn))、→下標(biāo)運(yùn)算符[]其他函數(shù)調(diào)用運(yùn)算符()2.5運(yùn)算符和表達(dá)式
表達(dá)式:用運(yùn)算符將常量、變量、函數(shù)連接起來(lái)構(gòu)成的計(jì)算式注意(1)參加表達(dá)式運(yùn)算的量必須有確切的值,表達(dá)式經(jīng)過(guò)運(yùn)算后,也一定會(huì)得到一個(gè)確切的值。(2)計(jì)算表達(dá)式的值要注意三個(gè)方面問(wèn)題
a、運(yùn)算符的結(jié)合性
b、運(yùn)算符的優(yōu)先等級(jí)
c、數(shù)據(jù)類型的轉(zhuǎn)換請(qǐng)問(wèn):何為C++語(yǔ)句?如:a=3;2.5運(yùn)算符和表達(dá)式
--類型轉(zhuǎn)換(1)不同類型的混合運(yùn)算的自動(dòng)轉(zhuǎn)換規(guī)則不同的數(shù)據(jù)類型要先轉(zhuǎn)換成同一類型后,才可運(yùn)算自動(dòng)轉(zhuǎn)換的特點(diǎn):臨時(shí)性和逐步性
高低doublelongintChar,shortfloatunsigned(2)為程序清晰,建議使用強(qiáng)制轉(zhuǎn)化,如:(int)a;強(qiáng)轉(zhuǎn)很靈活,你必須知道你在做什么?。?!
經(jīng)常用強(qiáng)轉(zhuǎn)來(lái)解決很多warning.2.5運(yùn)算符和表達(dá)式
--類型轉(zhuǎn)換實(shí)例為什么出現(xiàn)這么多錯(cuò)誤?2.5運(yùn)算符和表達(dá)式
--類型轉(zhuǎn)換實(shí)例2.5運(yùn)算符和表達(dá)式
--類型轉(zhuǎn)換實(shí)例本講重點(diǎn)小結(jié)變量定義的含義常量的表示各種變量定義方法.運(yùn)算符優(yōu)先級(jí)、結(jié)合性表達(dá)式計(jì)算時(shí)類型轉(zhuǎn)換另外,教材的2.1節(jié)可以不作重點(diǎn)看下一講主要內(nèi)容運(yùn)算符C++輸出和輸入?yún)⒖冀滩牡牡?章,P31-40.希望大家做好預(yù)習(xí)第2次實(shí)驗(yàn)練習(xí)1.本次實(shí)驗(yàn)練習(xí)必做題共2題,要求上機(jī)完成。在第5周末之前提交。提交內(nèi)容:代碼和執(zhí)行結(jié)果2.題目:第1題:使用運(yùn)算符sizeof()來(lái)測(cè)試在VS2008編譯器環(huán)境下short,int,long,unsignedshort,unsignedint,unsignedlong,char,Bool,double和float等類型的字節(jié)數(shù),同時(shí),設(shè)計(jì)一種方法測(cè)試float類型能保留的小數(shù)位數(shù)長(zhǎng)度。將上述結(jié)果在屏幕打印出來(lái)。第2題:犀利哥故事3(見下頁(yè))
第2題:犀利哥的故事3【問(wèn)題描述】話說(shuō)犀利哥有了天仙妹妹電話,電話熱線不斷。一天,電話之后,犀利哥“杯具”了:妹妹她媽要彩禮10萬(wàn)元,否則就被OUT??蓱z哥哥家里窮得叮當(dāng)響,除了兩只小羊外,一無(wú)所有。他看著家里僅有的兩只羊道:“羊呀羊,你要是能每個(gè)月為咱家生一對(duì)羊該多好??!這樣我就能拿你們?nèi)ベu錢!半年后我或許就湊滿彩禮。大家編程幫犀利哥算算:6個(gè)月是否可籌齊彩禮?編程打印每個(gè)月的“月份、羊數(shù)量和錢”?!炯僭O(shè)】犀利哥家的兩只羊是2010年1月1號(hào)生的,要在下個(gè)月的才能發(fā)育成熟生子;每一對(duì)發(fā)育成熟的羊在接下來(lái)的每個(gè)月都能生出一對(duì)小羊(一雌一雄);羊永不死亡;每只羊買10元。在上述假設(shè)下,6個(gè)月后,哥哥家會(huì)有多少只羊?能買多少錢?【提示】結(jié)合高中數(shù)學(xué),梳理出第1至6月份的羊數(shù)量的計(jì)算公式選做題『題目要求』犀利哥故事3,話說(shuō)犀利哥意外接到天仙妹妹的短信,轉(zhuǎn)喜為憂愁。如何保存天仙妹妹的手機(jī)號(hào)碼呢?請(qǐng)同學(xué)幫忙設(shè)計(jì)一個(gè)存儲(chǔ)11位手機(jī)號(hào)碼軟件。主要考慮用什么數(shù)據(jù)類型?試考慮多種不同方案。并根據(jù)所設(shè)定的數(shù)據(jù)類型,聲明變量來(lái)存儲(chǔ)手機(jī)號(hào)碼,然后使用該變量類型在屏幕上正確地輸出號(hào)碼。如:存儲(chǔ)的手機(jī)號(hào)碼則最后輸出結(jié)果應(yīng)該是帝是個(gè)程序員問(wèn):上帝真能控制生活中發(fā)生的每一個(gè)細(xì)節(jié)嗎?答:如果他使用調(diào)試程序(Debug
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度地形圖保密協(xié)議模板-國(guó)土空間數(shù)據(jù)安全合作3篇
- 2024年大米產(chǎn)業(yè)鏈金融投資合作協(xié)議范本3篇
- 2024年度高品質(zhì)肉牛養(yǎng)殖基地建設(shè)合同3篇
- 新疆警察學(xué)院《食品工程與機(jī)械1》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024年安陽(yáng)職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)技能測(cè)試題庫(kù)
- 管道產(chǎn)品采購(gòu)合同范例
- 維修平房合同范例
- 鄉(xiāng)下老屋轉(zhuǎn)讓合同范例
- 場(chǎng)地聯(lián)合經(jīng)營(yíng)合同范例
- 會(huì)議接待服務(wù)合同范例
- 《電動(dòng)自行車集中充電設(shè)施技術(shù)規(guī)范》
- 孕婦學(xué)校培訓(xùn)經(jīng)典課件-2024鮮版
- 《硬措施》解析培訓(xùn)課件-2024年
- JTT327-2016 公路橋梁伸縮裝置通用技術(shù)條件
- 小學(xué)英語(yǔ)語(yǔ)法復(fù)習(xí)課件1
- 2023秋國(guó)開(專)《生產(chǎn)與運(yùn)作管理》歷屆期末考試試題及答案
- 甘肅省定西市普通高中2023-2024學(xué)年高一上學(xué)期期末學(xué)業(yè)質(zhì)量檢測(cè)物理試題(含答案解析)
- 24.教育規(guī)劃綱要(2024-2024)
- 2023年12月江蘇省啟東市高新區(qū)(近海鎮(zhèn))公開招錄7名村干部筆試歷年高頻考點(diǎn)難、易錯(cuò)點(diǎn)薈萃附答案帶詳解
- 2023-2024學(xué)年江蘇省揚(yáng)州市八年級(jí)上冊(cè)期末地理模擬試題(含解析)
- 我的家鄉(xiāng)隴南
評(píng)論
0/150
提交評(píng)論