版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第3講數(shù)據(jù)類型(中)
--變量、常量、運算符、表達式
黃永峰
2015-9-28
yfhuang@對應教材的第2章P19-30的內(nèi)容本講內(nèi)容變量的定義方法和內(nèi)涵常量在程序中的表示方法運算符和表達式概念問題1:計算機為不同類型數(shù)據(jù)分配不同大小內(nèi)存空間問題2:計算機為不同類型數(shù)據(jù)采用不同二進制編碼表示問題3:計算機對不同類型數(shù)據(jù)采用不同運算操作解決方案:為程序中數(shù)據(jù)定義不同類型的變量回顧:數(shù)據(jù)在計算機中如何存儲?
2.3程序中的變量定義定義變量的含義定義一個變量代表在內(nèi)存中分配一定大小的存儲單元。變量類型確定了數(shù)據(jù)編碼格式、存儲空間大小和能執(zhí)行操作變量空間兩屬性:存儲地址(或名稱)和存儲數(shù)據(jù)(存儲內(nèi)容);內(nèi)存地址用16進制數(shù)表示,名稱用標識符表示對變量訪問(讀寫)2種方式:通過變量名或變量地址內(nèi)存結(jié)構(gòu)圖數(shù)據(jù)地址47F87…….ab47F9447F9560000000000000110例如:chara;intb=6;2.3.1變量定義方法變量的3屬性名稱:變量名規(guī)則(匈牙利命名法,見P28),如:intiCount數(shù)值:類型相一致;當一個數(shù)據(jù)寫變量,只要沒有新的數(shù)據(jù)寫入,就總保存這個數(shù)據(jù)?!耙淮螌?、多次讀”存儲空間:大小+地址(編號)變量定義的外延:“先定義,后使用”變量定義一般格式類型標識符變量名列表;例如:intsum,SUM;變量的初始化:在定義變量同時給予初始值如,intsum=10;C++語言中的關鍵字(32個)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunionunsignedvoidvolatiewhileC++語言中的編譯預處理命令(12個):
defineendifeliferrorlineincludeifdefifndefprogramundefifelse
2.3.1變量定義方法注意:不能用上述關鍵字或命令名做變量名整型變量分為四種類型基本型,用int表示短整型,用shortint或者short表示長整型,用longint或者long表示無符號型,unsignedint(無符號整型)、unsignedshort(無符號短整型)和unsignedlong(無符號長整型)
2.3.2C++整型變量(參考P20)注意:變量沒初始化而使用帶來問題2.3.2C++整型變量(參考P20)注意:變量字長和溢出問題符號常量N2.3.2C++整型變量(參考P20)
一臺安裝了Windows95/98的機器,如果連續(xù)運行49.7天沒有重啟,可能會引起死機。為什么呢?原因:?Windows95/98系統(tǒng)設置了一個計數(shù)器用于記錄系統(tǒng)已經(jīng)運行了多少毫秒。這個計數(shù)器是一個unsignedlong類型的變量?unsignedlong的最大值是:4294967295?一天有24×3600×1000=86400000ms,4294967295/86400000=49.7天?當系統(tǒng)運行到49.7天時,此計數(shù)器會溢出,引起死機小蛇吞掉大象的故事2.3.2C++整型變量(參考P20)實型變量分為單精度(float)和雙精度(double)兩種類型float內(nèi)存4個字節(jié);double占內(nèi)存8個字節(jié)float型變量只能接受7位有效數(shù)字;double型變量只能接受15位有效數(shù)字2.3.3實型變量(參考P23)2.3.3實型變量2.3.3實型變量的陷阱結(jié)論:f和123.456有類型差異不同類型實型數(shù)有精度差異實型數(shù)之間正確的比較方法有關浮點數(shù)的精度問題123.456000的二進制,小數(shù)位為無窮位…..2.3.4字符和布爾性變量字符和布爾變量:在內(nèi)存中占一個字節(jié)字符變量存放字符的ASCII碼值,例:字符‘A’在內(nèi)存中存放的是65;布爾變量存儲1或0;字符變量定義和初始化charx1,ch1=’x’;布爾變量定義和初始化boolc1,c2=true;c3=1;提問:ch1=“x”對嗎?為啥呢2.3.5常變量常變量:又稱為只讀變量(Read-only-variable)是保護數(shù)據(jù)安全的機制,防止意外修改定義形式:const類型變量名;例如:constinta=3;constfloatb=3.14*2;參考P31常量:在編程時用來對變量賦值或初始化,或直接參加表達式運算。例如,inta,a=3;charc=‘a(chǎn)’;a=a+4;類型:數(shù)值常量(整型常量,實型常量)、字符常量和符號常量2.4程序中的常量表示2.4常量表示-實型數(shù)的表示注意:E表示的意義(1)單撇號表示法:用一對單撇號括起來的一個字符,如‘a(chǎn)’,‘c’,‘A’,‘?’等單撇號中的單個字符。但不能是單撇號或反斜杠:即‘’’、‘\’都是不合法的2.4程序中的常量表示
--字符型常量的表示P23(2)轉(zhuǎn)義字符表示法:用斜杠加一個字符或16進制數(shù)表示字符形式\n\t\b\v\r字符形式\f\\\ddd\‘\xhh含 義換行橫向跳格(跳到下一個輸出區(qū)域)豎向跳格退格回車含 義走紙換行反斜杠字符\單引號‘3位八進制數(shù)所代表的字符2位十六進制數(shù)所代表的字符利用\ddd轉(zhuǎn)義字符,可以表示任何ASCII碼字符問題:‘\101’==‘A’嗎?為什么呢2.4程序中的常量表示
--字符型常量的表示P23結(jié)論:字符型數(shù)據(jù)和整型數(shù)據(jù)可以通用提問:引入符號常量有什么好處?2.4程序中的常量表示
--符號常量(P26)提問:常變量與符號常量有區(qū)別嗎?符號常量在編譯時被替換掉,不分配存儲空間常變量編譯時分配存儲空間,并檢測類型,因此更安全常變量是C++對C的改進,因此更好用符號常量常常量問題:“x”=‘x’嗎,為什么呢?2.4程序中的常量表示
--字符串常量的表示p25字符串常量:用雙撇號括起來的多個字符序列,如:“zhangsan”、“student”,“x”,”hello”等,字符串的字符數(shù)為字符串長度系統(tǒng)在每一個字符串的末尾都自動加一個“字符串結(jié)束標志”,即‘\0’2.4程序中的常量表示
--字符串常量的表示p252.5運算符和表達式運算符:C++豐富運算符(共44個);按功能可分為13類
算術運算符+、-、*、/、%關系運算符>、<、==、>=、<=、!=邏輯運算符!、&&、||位運算符<<、>>、~、|、∧、&賦值運算符=條件運算符?:逗號運算符,指針運算符*、&求字節(jié)數(shù)運算符Sizeof,例:sizeof(int)或sizeof(變量)強制類型轉(zhuǎn)換運算符(類型)分量運算符.(點)、→下標運算符[]其他函數(shù)調(diào)用運算符()2.5運算符和表達式
表達式:用運算符將常量、變量、函數(shù)連接起來構(gòu)成的計算式注意(1)參加表達式運算的量必須有確切的值,表達式經(jīng)過運算后,也一定會得到一個確切的值。(2)計算表達式的值要注意三個方面問題
a、運算符的結(jié)合性
b、運算符的優(yōu)先等級
c、數(shù)據(jù)類型的轉(zhuǎn)換請問:何為C++語句?如:a=3;2.5運算符和表達式
--類型轉(zhuǎn)換(1)不同類型的混合運算的自動轉(zhuǎn)換規(guī)則不同的數(shù)據(jù)類型要先轉(zhuǎn)換成同一類型后,才可運算自動轉(zhuǎn)換的特點:臨時性和逐步性
高低doublelongintChar,shortfloatunsigned(2)為程序清晰,建議使用強制轉(zhuǎn)化,如:(int)a;強轉(zhuǎn)很靈活,你必須知道你在做什么?。。?/p>
經(jīng)常用強轉(zhuǎn)來解決很多warning.2.5運算符和表達式
--類型轉(zhuǎn)換實例為什么出現(xiàn)這么多錯誤?2.5運算符和表達式
--類型轉(zhuǎn)換實例2.5運算符和表達式
--類型轉(zhuǎn)換實例本講重點小結(jié)變量定義的含義常量的表示各種變量定義方法.運算符優(yōu)先級、結(jié)合性表達式計算時類型轉(zhuǎn)換另外,教材的2.1節(jié)可以不作重點看下一講主要內(nèi)容運算符C++輸出和輸入?yún)⒖冀滩牡牡?章,P31-40.希望大家做好預習第2次實驗練習1.本次實驗練習必做題共2題,要求上機完成。在第5周末之前提交。提交內(nèi)容:代碼和執(zhí)行結(jié)果2.題目:第1題:使用運算符sizeof()來測試在VS2008編譯器環(huán)境下short,int,long,unsignedshort,unsignedint,unsignedlong,char,Bool,double和float等類型的字節(jié)數(shù),同時,設計一種方法測試float類型能保留的小數(shù)位數(shù)長度。將上述結(jié)果在屏幕打印出來。第2題:犀利哥故事3(見下頁)
第2題:犀利哥的故事3【問題描述】話說犀利哥有了天仙妹妹電話,電話熱線不斷。一天,電話之后,犀利哥“杯具”了:妹妹她媽要彩禮10萬元,否則就被OUT??蓱z哥哥家里窮得叮當響,除了兩只小羊外,一無所有。他看著家里僅有的兩只羊道:“羊呀羊,你要是能每個月為咱家生一對羊該多好?。∵@樣我就能拿你們?nèi)ベu錢!半年后我或許就湊滿彩禮。大家編程幫犀利哥算算:6個月是否可籌齊彩禮?編程打印每個月的“月份、羊數(shù)量和錢”。【假設】犀利哥家的兩只羊是2010年1月1號生的,要在下個月的才能發(fā)育成熟生子;每一對發(fā)育成熟的羊在接下來的每個月都能生出一對小羊(一雌一雄);羊永不死亡;每只羊買10元。在上述假設下,6個月后,哥哥家會有多少只羊?能買多少錢?【提示】結(jié)合高中數(shù)學,梳理出第1至6月份的羊數(shù)量的計算公式選做題『題目要求』犀利哥故事3,話說犀利哥意外接到天仙妹妹的短信,轉(zhuǎn)喜為憂愁。如何保存天仙妹妹的手機號碼呢?請同學幫忙設計一個存儲11位手機號碼軟件。主要考慮用什么數(shù)據(jù)類型?試考慮多種不同方案。并根據(jù)所設定的數(shù)據(jù)類型,聲明變量來存儲手機號碼,然后使用該變量類型在屏幕上正確地輸出號碼。如:存儲的手機號碼則最后輸出結(jié)果應該是帝是個程序員問:上帝真能控制生活中發(fā)生的每一個細節(jié)嗎?答:如果他使用調(diào)試程序(Debug
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《臨床科學合理用血》課件
- 網(wǎng)絡藝術傳播策略-洞察分析
- 云存儲端到端加密技術-洞察分析
- 水管供應商移動互聯(lián)網(wǎng)營銷策略與新零售實踐研究-洞察分析
- 關于帶手機去學校的檢討書范文500字(7篇)
- 部編版小學語文六年級上冊習作《我的拿手好戲》精美課件
- 健康度假景區(qū)全攻略
- 辦公用品采購中的合規(guī)律條應用實例
- 創(chuàng)新型綠色教育項目的策劃與執(zhí)行
- 《生產(chǎn)部月報模板》課件
- 2023-2024學年湖北省黃岡市小學數(shù)學五年級上冊期末深度自測試卷
- 預防接種門診的設置
- 房性早搏演示課件
- 2010途觀tiguan轎車維修手冊車身
- YY/T 0698.10-2009最終滅菌醫(yī)療器械包裝材料第10部分:可密封組合袋、卷材和蓋材生產(chǎn)用涂膠聚烯烴非織造布材料要求和試驗方法
- GB/T 40638-2021農(nóng)村產(chǎn)權流轉(zhuǎn)交易服務術語和服務分類
- GB/T 11139-1989餾分燃料十六烷指數(shù)計算法
- GB/T 10807-1989軟質(zhì)泡沫聚合材料壓陷硬度試驗方法
- 強迫癥病人的護理11課件
- 2022-2023學年人教版高中地理選擇性必修一課件:4.2 洋流 (50張)
- 女性主義視角下《地下鐵道》中科拉命運的解讀分析研究 社會學專業(yè)
評論
0/150
提交評論