![C語言程序設(shè)計(jì) 課件 任務(wù)4.4 枚舉和共用體_第1頁](http://file4.renrendoc.com/view7/M01/2D/0D/wKhkGWcGFXuAGGTRAAFxFWmjvHU064.jpg)
![C語言程序設(shè)計(jì) 課件 任務(wù)4.4 枚舉和共用體_第2頁](http://file4.renrendoc.com/view7/M01/2D/0D/wKhkGWcGFXuAGGTRAAFxFWmjvHU0642.jpg)
![C語言程序設(shè)計(jì) 課件 任務(wù)4.4 枚舉和共用體_第3頁](http://file4.renrendoc.com/view7/M01/2D/0D/wKhkGWcGFXuAGGTRAAFxFWmjvHU0643.jpg)
![C語言程序設(shè)計(jì) 課件 任務(wù)4.4 枚舉和共用體_第4頁](http://file4.renrendoc.com/view7/M01/2D/0D/wKhkGWcGFXuAGGTRAAFxFWmjvHU0644.jpg)
![C語言程序設(shè)計(jì) 課件 任務(wù)4.4 枚舉和共用體_第5頁](http://file4.renrendoc.com/view7/M01/2D/0D/wKhkGWcGFXuAGGTRAAFxFWmjvHU0645.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
C語言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐模塊四編程高級應(yīng)用任務(wù)4.4枚舉和共用體C語言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐課程組04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS任務(wù)4.4枚舉和共用體01問題引入05技能點(diǎn)檢測一問題引入有一類團(tuán)體型的數(shù)據(jù)集合,比如一周7天的名稱,天干地支名稱,這些名稱往往是組團(tuán)使用的,或者有些特殊使用場合的信息。這類信息在C語言里可以使用自定義的枚舉型來進(jìn)行組織設(shè)計(jì)。此外,現(xiàn)實(shí)生活中,我們裝很多東西時(shí),一般是用大箱子裝大東西,小箱子裝小東西,但是也有些時(shí)候我們只需要裝一個(gè)東西,但是不確定要裝的東西是多大,我們就準(zhǔn)備一個(gè)大箱子,小的可以裝,大的也可以裝,這樣就不必準(zhǔn)備大大小小的多個(gè)箱子。這類信息在C語言里可以使用共用體來進(jìn)行組織設(shè)計(jì)。那么枚舉和共用體在使用時(shí)有哪些注意事項(xiàng)呢?04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)4.4枚舉和共用體二技能點(diǎn)分析1.枚舉和共用體類型2.枚舉的遍歷3.共用體的定義與使用4.訪問共用體成員學(xué)習(xí)目標(biāo)1.什么是枚舉?2.枚舉可以遍歷么?3.什么是共用體?4.結(jié)構(gòu)體和共用體的區(qū)別?學(xué)期預(yù)習(xí)04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)4.4枚舉和共用體枚舉是C語言中的一種基本數(shù)據(jù)類型,它可以讓數(shù)據(jù)更簡潔,更易讀。第一個(gè)枚舉成員的默認(rèn)值為整型的0,后續(xù)枚舉成員的值在前一個(gè)成員上加1。共用體是一種特殊的數(shù)據(jù)類型,允許您在相同的內(nèi)存位置存儲不同的數(shù)據(jù)類型。您可以定義一個(gè)帶有多成員的共用體,但是任何時(shí)候只能有一個(gè)成員帶有值。共用體提供了一種使用相同的內(nèi)存位置的有效方式。三技能點(diǎn)詳解——1
枚舉類型定義與使用枚舉語法定義格式為:enum枚舉名{枚舉元素1,枚舉元素2,……};enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};第一個(gè)枚舉成員的默認(rèn)值為整型的0,后續(xù)枚舉成員的值在前一個(gè)成員上加1。我們在這個(gè)實(shí)例中把第一個(gè)枚舉成員的值定義為1,第二個(gè)就為2,enumDAY{MON,TUE,WED=7,THU,FRI,SAT,SUN};前面我們只是聲明了枚舉類型,接下來我們看看如何定義枚舉變量。我們可以通過以下三種方式來定義枚舉變量。(1)先定義枚舉類型,再定義枚舉變量enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};enumDAYday;(2)定義枚舉類型的同時(shí)定義枚舉變量enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN}day;(3)省略枚舉名稱,直接定義枚舉變量enum
{MON=1,TUE,WED,THU,FRI,SAT,SUN}day1;三技能點(diǎn)詳解——2共用體類型定義1)先聲明公用體類型,再聲明公用體變量定了定義共用體,您必須使用union語句,方式與定義結(jié)構(gòu)類似。union語句定義了一個(gè)新的數(shù)據(jù)類型,帶有多個(gè)成員。union語句的格式如下:union
共用體類型名稱{
數(shù)據(jù)類型
成員名1;
數(shù)據(jù)類型
成員名2;……
數(shù)據(jù)類型
成員名n;};unionData{inti;floatf;charstr[20];}; //定義共用體DataunionDatad1; //定義一個(gè)unionData類型變量d1三技能點(diǎn)詳解——2共用體類型定義2)在定義結(jié)構(gòu)體類型的同時(shí)定義結(jié)構(gòu)體變量unionData{inti;floatf;charstr[20];}d1; //定義共用體unionData同時(shí)定義變量d13)共用體成員的訪問與使用為了訪問共用體的成員,我們使用成員訪問運(yùn)算符(.)。成員訪問運(yùn)算符是共用體變量名稱和我們要訪問的共用體成員之間的一個(gè)句號。共用體變量名.成員名三技能點(diǎn)詳解——2
共用體類型定義在下面的例子中,我們會(huì)發(fā)現(xiàn)最先被訪問和賦值的d1.i和d1.f是無法打印出來的,因?yàn)槲覀冏詈笤L問和賦值的d1.str把之前訪問并賦值的成員數(shù)據(jù)都給覆蓋了。#include
"stdio.h"#include
"string.h"unionData{
inti;
floatf;
chars[100];};intmain(){unionDatad1; //定義共用體unionData變量datad1.i=10; //訪問成員i并賦值d1.f=100.0; //訪問成員f并賦值strcpy(d1.s,"C程序設(shè)計(jì)"); //訪問成員strprintf("d1.i:%d\n",d1.i);printf("d1.f:%f\n",d1.f);printf("d1.s:%s\n",d1.str);
return0;}三技能點(diǎn)詳解——案例圖4.4.1共用體變量d1的內(nèi)部結(jié)構(gòu)
#include
<stdio.h>#include
<stdlib.h>intmain(){/*聲明一個(gè)包括3個(gè)英文顏色的enumcolor數(shù)據(jù)類型*/enumcolor{red=1,green,blue};
enumcoloruser_color; printf("請輸入你喜歡的顏色:(1.red,2.green,3.blue):");scanf("%u",&user_color);
switch(user_color)
{
casered: //此處red=1printf("OK!喜歡的顏色是:紅色");
break;
casegreen: //此處green=2printf("你喜歡的顏色是:綠色");
break;
caseblue: //此處blue=3printf("你喜歡的顏色是:藍(lán)色");
break;
default:printf("沒有你喜歡的顏色");}
return0;}/*************************************************************內(nèi)容簡述:定義一個(gè)顏色的英文名稱枚舉變量,根據(jù)用戶輸入的數(shù)值輸出*中文顏色名稱。程序中結(jié)合了枚舉在switch中的使用技術(shù)************************************************************/三技能點(diǎn)詳解——案例圖4.4.1共用體變量d1的內(nèi)部結(jié)構(gòu)
/*************************************************************內(nèi)容簡述:定義一個(gè)存儲3個(gè)不同類型數(shù)據(jù)的共用體變量,根據(jù)用戶輸入*的數(shù)值再輸出。這里每一次賦值后都會(huì)改變變量空間里其他成員值失效,因此*不能再次訪問之前的成員數(shù)據(jù)。************************************************************/#include
<stdio.h>#include
<string.h>unionData{
inti;
floatf;
charstr[20];}; //定義一個(gè)名為Data的共用體數(shù)據(jù)類型
intmain(){
unionDatad1; //定義一個(gè)unionData共用體變量
d1.i=100;printf("d1.i:%d\n",d1.i);//輸入數(shù)據(jù)到共用體變量dataud.f=1000.5;printf("d1.f:%f\n",d1.f);strcpy(d1.str,"C語言程序設(shè)計(jì)");//使用strcpy()函數(shù)寫入字符串
printf("d1.str:%s\n",d1.str);
return0;}04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問題引入05技能點(diǎn)檢測任務(wù)4.4枚舉和共用體四技能點(diǎn)拓展——1將整數(shù)轉(zhuǎn)換為枚舉在C語言中,枚舉類型是被當(dāng)做int或者unsignedint類型來處理的,所以按照C語言規(guī)范是沒有辦法遍歷枚舉類型的。枚舉變量的值就是枚舉類型里面定義的某個(gè)成員的值,而且這個(gè)值是常量。雖然枚舉變量可以與整型數(shù)據(jù)之間進(jìn)行類型轉(zhuǎn)換,但不是把整型數(shù)據(jù)直接賦值給枚舉行變量例如案例4.4.1中的枚舉型變量enumcoloruser_color,如果進(jìn)行如下操作是非法的:
user_color=2;但是,C語言可以將整數(shù)轉(zhuǎn)換為枚舉來使用:user_color=(enumcolor)2;四技能點(diǎn)拓展——2共用體類型數(shù)據(jù)使用注意事項(xiàng)共用體類型數(shù)據(jù)具有兩個(gè)特點(diǎn):(1)同一個(gè)內(nèi)存段可以用來存放幾種不同類型的成員,但是在同一時(shí)刻只能存放其中的一種,而不是同時(shí)存放幾種。換句話說,同一時(shí)刻只有一個(gè)成員起作用,其他的成員失效,即不是同時(shí)都存在和有效的。(2)共用體變量中起作用的成員是最后一次存放的成員,在存入一個(gè)新成員后,原有成員就失效。共用體變量的地址和它的各成員的地址都是同一地址。以下用法就是錯(cuò)誤的unionDatad1=10;//定義變量同時(shí)給變量賦值這會(huì)導(dǎo)致錯(cuò)誤提示:errorC2440:“初始化”:無法從“int”轉(zhuǎn)換為“Data”四技能點(diǎn)拓展——2共用體類型數(shù)據(jù)使用注意事項(xiàng)同時(shí)需要注意一些特殊要求:(1)不能對共用體變量名賦值,也不能企圖引用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度房屋抵押借款合同:民間借貸房產(chǎn)版
- 2025年度教師實(shí)習(xí)期間實(shí)習(xí)單位與實(shí)習(xí)教師信息保密協(xié)議
- 2025年舒巴坦酸項(xiàng)目可行性研究報(bào)告
- 2025年中國電動(dòng)永磁起重器市場發(fā)展前景預(yù)測及投資戰(zhàn)略咨詢報(bào)告
- 2025年度合同履行擔(dān)保信用評估與擔(dān)保額度確定合同
- 2025年開發(fā)水資源發(fā)電項(xiàng)目投資可行性研究分析報(bào)告
- 2025年化工涂料制品行業(yè)深度研究分析報(bào)告
- 2025年度教育數(shù)據(jù)安全保障與處理合同
- 2025年康利食品項(xiàng)目投資可行性研究分析報(bào)告
- 中國液壓粉碎鉗行業(yè)市場發(fā)展監(jiān)測及投資潛力預(yù)測報(bào)告
- 部編五下語文教學(xué)多元評價(jià)方案
- GB/T 18109-2024凍魚
- 《榜樣9》觀后感心得體會(huì)二
- 《西安交通大學(xué)》課件
- 小學(xué)二年級數(shù)學(xué)計(jì)算題共4165題
- 一氧化碳中毒培訓(xùn)
- 初二上冊好的數(shù)學(xué)試卷
- 廣東省潮州市2024-2025學(xué)年九年級上學(xué)期期末道德與法治試卷(含答案)
- 突發(fā)公共衛(wèi)生事件衛(wèi)生應(yīng)急
- 部編版2024-2025學(xué)年三年級上冊語文期末測試卷(含答案)
- 門窗安裝施工安全管理方案
評論
0/150
提交評論