




已閱讀5頁(yè),還剩29頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第10章共用體與枚舉類(lèi)型 10 1共用體類(lèi)型與共用體變量union共用體類(lèi)型名 成員說(shuō)明列表 uniondata inti charch floatf 同定義結(jié)構(gòu)體類(lèi)型一樣 共用體變量也有三種方式 1 先定義共用體類(lèi)型 再定義共用體變量uniondata inti charch floatf uniondataa b c 2 在定義共用體類(lèi)型的同時(shí)定義共用體類(lèi)型變量uniondata inti charch floatf a b c 3 定義共用體類(lèi)型時(shí) 省略共用體類(lèi)型名 同時(shí)定義共用體類(lèi)型變量union inti charch floatf a b c 10 2共用體變量的引用一個(gè)共用體變量不是同時(shí)存放多個(gè)成員的值 而只能存放其中的一個(gè)值 這就是最后賦給它的值 a i 278 a ch D a f 5 78 共用體變量中最后的值是5 78 也可以通過(guò)指針變量引用共用體變量中的成員 例 uniondata pt x pt f 共用體與結(jié)構(gòu)體的區(qū)別 1 共用體變量a所占的內(nèi)存單元的字節(jié)數(shù)不是3個(gè)成員的字節(jié)數(shù)之和 而是等于3個(gè)成員中最長(zhǎng)字節(jié)的成員所占內(nèi)存空間的字節(jié)數(shù) 也就是說(shuō)a的3個(gè)成員共享4個(gè)字節(jié)的內(nèi)存空間 2 變量a中不能同時(shí)存在3個(gè)成員 只是可以根據(jù)需要用a存放一個(gè)整型數(shù) 或存放一個(gè)字符數(shù)據(jù) 或存放一個(gè)浮點(diǎn)數(shù) 例如 a ch a a i 100 a f 3 14 3 可以對(duì)共用體變量進(jìn)行初始化 但在花括號(hào)中只能給出第一個(gè)成員的初值 unionmemo charch inti floatx y1 a unionun習(xí)題集P125 3 chars 10 longd 3 ua structstd charc 10 doubled inta unionunvb a 則printf d n sizeof structstd sizeof unionun 輸出的值為 unionpw習(xí)題集P124 3 inti charch 2 a voidmain a ch 0 13 a ch 1 0 printf d n a i voidmain 例10 1寫(xiě)出執(zhí)行結(jié)果 unionexx inta b struct intc d lpp e 10 e b e a 20 e lpp c e a e b e lpp d e a e b printf d d n e lpp c e lpp d 10 4位運(yùn)算與位段結(jié)構(gòu)位是指二進(jìn)制數(shù)的一位 其值為0或1 位段以位為單位定義結(jié)構(gòu)體 或共用體 中成員所占存儲(chǔ)空間的長(zhǎng)度 含有位段的結(jié)構(gòu)體類(lèi)型稱為位段結(jié)構(gòu) 10 4 1位運(yùn)算位運(yùn)算符主要有 按位 與 按位 或 按位 取反 按位 異或 右移 1 按位 與 運(yùn)算規(guī)則為 0 0 0 0 1 0 1 0 0 1 1 1 5 3111110110000001100000011所以 5 3 3 2 按位 或 運(yùn)算規(guī)則 0 0 0 0 1 1 1 0 1 1 1 1 5 310110000001111111011 5 3 5 3 按位 異或 運(yùn)算規(guī)則 0 0 0 0 1 1 1 0 1 1 1 0 5 3111110110000001111111000 5 3 8 4 按位 取反 運(yùn)算規(guī)則 0 1 1 0 70000011111111000 7 8 5 左移 3 2右邊 最低位 補(bǔ)0 相當(dāng)于乘2操作00000011000011003 2 12相當(dāng)于3x2x2 12 6 右移 移動(dòng)對(duì)象為正數(shù)時(shí) 高位補(bǔ)0 為負(fù)數(shù)時(shí) 邏輯右移 高位補(bǔ)0 算術(shù)右移 高位補(bǔ)1 3 21111110111111111 3 2 1 10 4 2位段結(jié)構(gòu)位段結(jié)構(gòu)也是一種結(jié)構(gòu)體類(lèi)型 只不過(guò)其中含有以位為單位定義存儲(chǔ)長(zhǎng)度的整數(shù)類(lèi)型位段成員 structbytedata unsigneda 2 unsigned 6 unsigned 0 unsignedb 10 inti data 無(wú)名位段 6位 位段b 10位 成員i 16位 2009 9 若有以下程序段intr 8 printf d n r 1 輸出結(jié)果是A 16B 8C 4D 2 C 2009 3 有以下程序 includemain inta 5 b 1 t t a 2 b printf d n t 程序運(yùn)行后的輸出結(jié)果是A 21B 11C 6D 1 A 10 5枚舉類(lèi)型枚舉定義的一般形式 enum枚舉類(lèi)型名 標(biāo)識(shí)符1 標(biāo)識(shí)符2 標(biāo)識(shí)符n enumcolorname red yellow blue white black enumcolornamecolor 變量color是枚舉類(lèi)型enumcolorname 它的值只能是red yellow blue white 或black 例如 下面的賦值合法 color red color white 下面是不合法 color green color orange 幾點(diǎn)說(shuō)明 1 定義枚舉類(lèi)型必須以enum開(kāi)頭 2 在定義枚舉類(lèi)型時(shí)花括號(hào)中的名字稱為枚舉元素或枚舉常量 命名規(guī)則與標(biāo)識(shí)符相同 僅是為了提高程序的可讀性才使用這些名字 3 枚舉元素不是變量 不能改變其值 下面是不對(duì)的 red 8 yellow 9 但枚舉元素作為常量 它們是有值的 從花括號(hào)的第一個(gè)元素開(kāi)始 值分別是0 1 2 3 4 這是系統(tǒng)自動(dòng)賦給的 可以輸出 例 printf d blue 輸出的值是2 但是枚舉類(lèi)型不能寫(xiě)成 enumcolorname 0 1 2 3 4 可以在定義類(lèi)型時(shí)對(duì)枚舉常量初始化 enumcolorname red 3 yellow blue white 8 black 4 枚舉常量可以進(jìn)行比較 例 if color red printf red if color black printf itisnotblack if color white printf9 itisblack 它們是按所代表的整數(shù)進(jìn)行比較的 5 一個(gè)枚舉變量的值只能是這幾個(gè)枚舉常量之一 可以將枚舉常量賦給一個(gè)枚舉變量 但不能將一個(gè)整數(shù)賦給它 例 color black 正確 color 5 錯(cuò)誤 6 枚舉常量不是字符串 不能用下面的方法輸出字符串 red printf s red 例 習(xí)題集P127 11 12 10 6類(lèi)型定義前面介紹的結(jié)構(gòu)體 共用體 枚舉等類(lèi)型定義或說(shuō)明變量時(shí)要冠以表明數(shù)據(jù)類(lèi)型的關(guān)鍵字 如struct union enum等 但C語(yǔ)言也提供用typedef定義類(lèi)型 為類(lèi)型命名的機(jī)制 1 簡(jiǎn)單的名字替換typedefintINTEGER INTEGERx y 相當(dāng)于intx y 2 定義一個(gè)類(lèi)型名代表一個(gè)結(jié)構(gòu)體類(lèi)型typedefstruct longnum charname 20 floatscore STUDENT STUDENTstudent1 student2 p 3 定義數(shù)組類(lèi)型例 typedefintCOUNT 20 COUNTa b 4 定義指針類(lèi)型typedefchar STRING STRINGp1 p2 p 10 用typedef定義一個(gè)新類(lèi)型名的方法如下 1 先按定義變量的方法寫(xiě)出定義體 如chara 20 2 將變量名換成新類(lèi)型名 charNAME 20 3 在最前面加上typedef 如typedefcharNAME 20 4 然后可以用新類(lèi)型名定義變量 NAMEc d 例 typedefint P
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 同事聚餐活動(dòng)方案
- 同城聯(lián)誼活動(dòng)策劃方案
- 同程旅游公司策劃方案
- 名宿元旦活動(dòng)方案
- 教育孩子講衛(wèi)生
- 名酒品鑒會(huì)活動(dòng)策劃方案
- 向上理財(cái)活動(dòng)方案
- 普通內(nèi)科基礎(chǔ)護(hù)理
- 啟文小學(xué)親子活動(dòng)方案
- 吸毒人員創(chuàng)業(yè)活動(dòng)方案
- 國(guó)開(kāi)《學(xué)前兒童語(yǔ)言教育活動(dòng)指導(dǎo)》形考1-4試題及答案
- ???023綜合安防工程師認(rèn)證試題答案HCA
- 濁度儀使用說(shuō)明書(shū)
- GB/T 14404-2011剪板機(jī)精度
- GB/T 14294-1993組合式空調(diào)機(jī)組
- GA 1517-2018金銀珠寶營(yíng)業(yè)場(chǎng)所安全防范要求
- 提高痰留取成功率PDCA課件
- 組合導(dǎo)航與融合導(dǎo)航解析課件
- 伊金霍洛旗事業(yè)編招聘考試《行測(cè)》歷年真題匯總及答案解析精選V
- 深基坑支護(hù)工程驗(yàn)收表
- 顱腦CT影像課件
評(píng)論
0/150
提交評(píng)論