freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

清華大學(xué)c課件第2章-資料下載頁(yè)

2024-10-16 01:00本頁(yè)面
  

【正文】 +語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 72 typedef語(yǔ)句 ? 為一個(gè)已有的數(shù)據(jù)類(lèi)型另外命名 ? 語(yǔ)法形式 typedef 已有類(lèi)型名 新類(lèi)型名表 。 ? 例如 typedef double Area, Volume。 typedef int Natural。 Natural i1, i2。 Area a。 Volume v。 自定義數(shù)據(jù)類(lèi)型 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 73 枚舉類(lèi)型 — enum ? 只要將需要的變量值一一列舉出來(lái),便構(gòu)成了一個(gè)枚舉類(lèi)型。 ? 枚舉類(lèi)型的聲明形式如下: enum 枚舉類(lèi)型名 {變量值列表 }。 ? 例如: enum Weekday {SUN, MON, TUE, WED, THU, FRI, SAT}。 自定義數(shù)據(jù)類(lèi)型 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 74 枚舉類(lèi)型 — enum ? 枚舉類(lèi)型應(yīng)用說(shuō)明: – 對(duì)枚舉元素按常量處理,不能對(duì)它們賦值。例如,不能寫(xiě): SUN = 0。 – 枚舉元素具有默認(rèn)值,它們依次為: 0,1,2,......。 – 也可以在聲明時(shí)另行指定枚舉元素的值,如: enum Weekday{SUN=7,MON=1,TUE,WED,THU,FRI,SAT}。 – 枚舉值可以進(jìn)行關(guān)系運(yùn)算。 – 整數(shù)值不能直接賦給枚舉變量,如需 要將整數(shù)賦值給枚舉變量,應(yīng)進(jìn)行強(qiáng) 制類(lèi)型轉(zhuǎn)換。 自定義數(shù)據(jù)類(lèi)型 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 75 例 211 ? 設(shè)某次體育比賽的結(jié)果有四種可能:勝( WIN)、負(fù)( LOSE)、平局( TIE)、比賽取消( CANCEL),編寫(xiě)程序順序輸出這四種情況。 ? 分析:由于比賽結(jié)果只有四種可能,所以可以聲明一個(gè)枚舉類(lèi)型,聲明一個(gè)枚舉類(lèi)型的變量來(lái)存放比賽結(jié)果。 自定義數(shù)據(jù)類(lèi)型 include iostream using namespace std。 enum GameResult {WIN, LOSE, TIE, CANCEL}。 int main() { GameResult result。 GameResult omit = CANCEL。 for (int count = WIN。 count = CANCEL。 count++) { result = GameResult(count)。 if (result == omit) cout The game was cancelled endl。 else { cout The game was played 。 if (result == WIN) cout and we won!。 if (result == LOSE) cout and we lost.。 cout endl。 } } return 0。 } 76 運(yùn)行結(jié)果 The game was played and we won! The game was played and we lost. The game was played The game was cancelled 77 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 變量是如何工作的? ? 站在目標(biāo)代碼的角度上看問(wèn)題 ? 變量具有兩個(gè)重要屬性 ——數(shù)據(jù)類(lèi)型和變量名 – 它們都用文字表示,便于人們理解,但不便于 CPU識(shí)別,因此它們不能出現(xiàn)在目標(biāo)代碼中; 78 深度探索 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 變量是如何工作的? ? 變量名 – 源代碼中,變量依靠變量名來(lái)標(biāo)識(shí); – 目標(biāo)代碼中,變量依靠地址來(lái)標(biāo)識(shí),每個(gè)變量的地址互不相同。 79 深度探索 int a, b。 int main() { a++。 b++。 return 0。 } incl 0x80495f8 incl 0x80495fc 地址 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 變量是如何工作的? ? 數(shù)據(jù)類(lèi)型 – 任何數(shù)據(jù)在內(nèi)存中都是用二進(jìn)制串的形式表示的; – 一串二進(jìn)制數(shù),只有確定了類(lèi)型,才有真實(shí)的含義; – 例: 10111111,10000000,00000000,00000000 ?解釋為 int型: 1,082,130,432 ?解釋為 unsigned型: 3,212,836,864 80 深度探索 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 變量是如何工作的? ? 目標(biāo)代碼體現(xiàn)數(shù)據(jù)類(lèi)型的方式 – 類(lèi)型的特性蘊(yùn)含于操作之中; – 對(duì)不同數(shù)據(jù)類(lèi)型,源代碼中形式上相同的操作,會(huì)被轉(zhuǎn)化為目標(biāo)代碼中的不同操作。 81 深度探索 81 int a。 short b。 char c。 int main() { a++。 b++。 c++。 return 0。 } incl 0x80495f8 incw 0x80495fc incb 0x80495fe 不同的操作 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 變量是如何工作的? ? 變量的聲明 – 將一個(gè)標(biāo)識(shí)符聲明為變量,告訴編譯器這個(gè)標(biāo)識(shí)符表示變量,同時(shí)還指出了它的數(shù)據(jù)類(lèi)型; – 只有確定了一個(gè)變量的數(shù)據(jù)類(lèi)型,變量參與的操作才具有完整的意義,編譯器才能將該變量參與的表達(dá)式翻譯為合適的操作。 ? 變量的定義 – 不僅確定了一個(gè)標(biāo)識(shí)符表示變量,以及該變量的類(lèi)型,還確定了變量地址的分配位置。 82 深度探索 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 表達(dá)式的執(zhí)行原理 ? 什么是寄存器? – CPU內(nèi)部的存儲(chǔ)單元 – 讀寫(xiě)速度非常快 – 數(shù)量很少 ? IA32有 eax、 ebx、 ecx、 edx、 esp、 ebp、 esi、 edi八個(gè)通用寄存器 ? 大部分 CPU指令都需要讀寫(xiě)寄存器。 ? 復(fù)雜的表達(dá)式,分步執(zhí)行,每條指令只能做一次基本運(yùn)算,中間結(jié)果暫存在寄存器中。 83 深度探索 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 表達(dá)式的執(zhí)行原理 int a, b, c, d。 int e。 int main() { a = 4。 b = 2。 c = 1。 d = 10。 e = (a + b) * (c d)。 return 0。 } movl $0x4,0x80495d8 movl $0x2,0x80495dc movl $0x1,0x80495e0 movl $0xa,0x80495e4 84 深度探索 把 4存入地址 0x80495d8中 0x80495d8: a變量 0x80495dc: b變量 0x80495e0: c變量 0x80495e4: d變量 0x80495e8: e變量 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 表達(dá)式的執(zhí)行原理 int a, b, c, d。 int e。 int main() { a = 4。 b = 2。 c = 1。 d = 10。 e = (a + b) * (c d)。 return 0。 } mov 0x80495dc,%eax mov 0x80495d8,%ecx add %eax,%ecx mov 0x80495e4,%edx mov 0x80495e0,%eax sub %edx,%eax imul %ecx,%eax mov %eax,0x80495e8 85 深度探索 把 0x80495dc地址的值放到 eax寄存器中 0x80495d8: a變量 0x80495dc: b變量 0x80495e0: c變量 0x80495e4: d變量 0x80495e8: e變量 ecx?ecx + eax eax?eax eax eax?(eax * eax)的低 32位 C++語(yǔ)言程序設(shè)計(jì) 清華大學(xué) 鄭莉 86 小結(jié)與復(fù)習(xí)建議 ? 主要內(nèi)容 – C++語(yǔ)言概述、基本數(shù)據(jù)類(lèi)型和表達(dá)式、數(shù)據(jù)的輸入與輸出、算法的基本控制結(jié)構(gòu)、自定義數(shù)據(jù)類(lèi)型 ? 達(dá)到的目標(biāo) – 掌握 C++語(yǔ)言的基本概念和基本語(yǔ)句,能夠編寫(xiě)簡(jiǎn)單的程序段。 ? 實(shí)驗(yàn)任務(wù) – 實(shí)驗(yàn)二
點(diǎn)擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1