版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐模塊四編程高級(jí)應(yīng)用任務(wù)4.4枚舉和共用體C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)與實(shí)踐課程組04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS任務(wù)4.4枚舉和共用體01問(wèn)題引入05技能點(diǎn)檢測(cè)一問(wèn)題引入有一類(lèi)團(tuán)體型的數(shù)據(jù)集合,比如一周7天的名稱(chēng),天干地支名稱(chēng),這些名稱(chēng)往往是組團(tuán)使用的,或者有些特殊使用場(chǎng)合的信息。這類(lèi)信息在C語(yǔ)言里可以使用自定義的枚舉型來(lái)進(jìn)行組織設(shè)計(jì)。此外,現(xiàn)實(shí)生活中,我們裝很多東西時(shí),一般是用大箱子裝大東西,小箱子裝小東西,但是也有些時(shí)候我們只需要裝一個(gè)東西,但是不確定要裝的東西是多大,我們就準(zhǔn)備一個(gè)大箱子,小的可以裝,大的也可以裝,這樣就不必準(zhǔn)備大大小小的多個(gè)箱子。這類(lèi)信息在C語(yǔ)言里可以使用共用體來(lái)進(jìn)行組織設(shè)計(jì)。那么枚舉和共用體在使用時(shí)有哪些注意事項(xiàng)呢?04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)4.4枚舉和共用體二技能點(diǎn)分析1.枚舉和共用體類(lèi)型2.枚舉的遍歷3.共用體的定義與使用4.訪問(wèn)共用體成員學(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問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)4.4枚舉和共用體枚舉是C語(yǔ)言中的一種基本數(shù)據(jù)類(lèi)型,它可以讓數(shù)據(jù)更簡(jiǎn)潔,更易讀。第一個(gè)枚舉成員的默認(rèn)值為整型的0,后續(xù)枚舉成員的值在前一個(gè)成員上加1。共用體是一種特殊的數(shù)據(jù)類(lèi)型,允許您在相同的內(nèi)存位置存儲(chǔ)不同的數(shù)據(jù)類(lèi)型。您可以定義一個(gè)帶有多成員的共用體,但是任何時(shí)候只能有一個(gè)成員帶有值。共用體提供了一種使用相同的內(nèi)存位置的有效方式。三技能點(diǎn)詳解——1
枚舉類(lèi)型定義與使用枚舉語(yǔ)法定義格式為:enum枚舉名{枚舉元素1,枚舉元素2,……};enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};第一個(gè)枚舉成員的默認(rèn)值為整型的0,后續(xù)枚舉成員的值在前一個(gè)成員上加1。我們?cè)谶@個(gè)實(shí)例中把第一個(gè)枚舉成員的值定義為1,第二個(gè)就為2,enumDAY{MON,TUE,WED=7,THU,FRI,SAT,SUN};前面我們只是聲明了枚舉類(lèi)型,接下來(lái)我們看看如何定義枚舉變量。我們可以通過(guò)以下三種方式來(lái)定義枚舉變量。(1)先定義枚舉類(lèi)型,再定義枚舉變量enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN};enumDAYday;(2)定義枚舉類(lèi)型的同時(shí)定義枚舉變量enumDAY{MON=1,TUE,WED,THU,FRI,SAT,SUN}day;(3)省略枚舉名稱(chēng),直接定義枚舉變量enum
{MON=1,TUE,WED,THU,FRI,SAT,SUN}day1;三技能點(diǎn)詳解——2共用體類(lèi)型定義1)先聲明公用體類(lèi)型,再聲明公用體變量定了定義共用體,您必須使用union語(yǔ)句,方式與定義結(jié)構(gòu)類(lèi)似。union語(yǔ)句定義了一個(gè)新的數(shù)據(jù)類(lèi)型,帶有多個(gè)成員。union語(yǔ)句的格式如下:union
共用體類(lèi)型名稱(chēng){
數(shù)據(jù)類(lèi)型
成員名1;
數(shù)據(jù)類(lèi)型
成員名2;……
數(shù)據(jù)類(lèi)型
成員名n;};unionData{inti;floatf;charstr[20];}; //定義共用體DataunionDatad1; //定義一個(gè)unionData類(lèi)型變量d1三技能點(diǎn)詳解——2共用體類(lèi)型定義2)在定義結(jié)構(gòu)體類(lèi)型的同時(shí)定義結(jié)構(gòu)體變量unionData{inti;floatf;charstr[20];}d1; //定義共用體unionData同時(shí)定義變量d13)共用體成員的訪問(wèn)與使用為了訪問(wèn)共用體的成員,我們使用成員訪問(wèn)運(yùn)算符(.)。成員訪問(wèn)運(yùn)算符是共用體變量名稱(chēng)和我們要訪問(wèn)的共用體成員之間的一個(gè)句號(hào)。共用體變量名.成員名三技能點(diǎn)詳解——2
共用體類(lèi)型定義在下面的例子中,我們會(huì)發(fā)現(xiàn)最先被訪問(wèn)和賦值的d1.i和d1.f是無(wú)法打印出來(lái)的,因?yàn)槲覀冏詈笤L問(wèn)和賦值的d1.str把之前訪問(wèn)并賦值的成員數(shù)據(jù)都給覆蓋了。#include
"stdio.h"#include
"string.h"unionData{
inti;
floatf;
chars[100];};intmain(){unionDatad1; //定義共用體unionData變量datad1.i=10; //訪問(wèn)成員i并賦值d1.f=100.0; //訪問(wèn)成員f并賦值strcpy(d1.s,"C程序設(shè)計(jì)"); //訪問(wèn)成員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ù)類(lèi)型*/enumcolor{red=1,green,blue};
enumcoloruser_color; printf("請(qǐng)輸入你喜歡的顏色:(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("沒(méi)有你喜歡的顏色");}
return0;}/*************************************************************內(nèi)容簡(jiǎn)述:定義一個(gè)顏色的英文名稱(chēng)枚舉變量,根據(jù)用戶(hù)輸入的數(shù)值輸出*中文顏色名稱(chēng)。程序中結(jié)合了枚舉在switch中的使用技術(shù)************************************************************/三技能點(diǎn)詳解——案例圖4.4.1共用體變量d1的內(nèi)部結(jié)構(gòu)
/*************************************************************內(nèi)容簡(jiǎn)述:定義一個(gè)存儲(chǔ)3個(gè)不同類(lèi)型數(shù)據(jù)的共用體變量,根據(jù)用戶(hù)輸入*的數(shù)值再輸出。這里每一次賦值后都會(huì)改變變量空間里其他成員值失效,因此*不能再次訪問(wèn)之前的成員數(shù)據(jù)。************************************************************/#include
<stdio.h>#include
<string.h>unionData{
inti;
floatf;
charstr[20];}; //定義一個(gè)名為Data的共用體數(shù)據(jù)類(lèi)型
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語(yǔ)言程序設(shè)計(jì)");//使用strcpy()函數(shù)寫(xiě)入字符串
printf("d1.str:%s\n",d1.str);
return0;}04技能點(diǎn)拓展03技能點(diǎn)詳解02技能點(diǎn)分析目錄CONTENTS01問(wèn)題引入05技能點(diǎn)檢測(cè)任務(wù)4.4枚舉和共用體四技能點(diǎn)拓展——1將整數(shù)轉(zhuǎn)換為枚舉在C語(yǔ)言中,枚舉類(lèi)型是被當(dāng)做int或者unsignedint類(lèi)型來(lái)處理的,所以按照C語(yǔ)言規(guī)范是沒(méi)有辦法遍歷枚舉類(lèi)型的。枚舉變量的值就是枚舉類(lèi)型里面定義的某個(gè)成員的值,而且這個(gè)值是常量。雖然枚舉變量可以與整型數(shù)據(jù)之間進(jìn)行類(lèi)型轉(zhuǎn)換,但不是把整型數(shù)據(jù)直接賦值給枚舉行變量例如案例4.4.1中的枚舉型變量enumcoloruser_color,如果進(jìn)行如下操作是非法的:
user_color=2;但是,C語(yǔ)言可以將整數(shù)轉(zhuǎn)換為枚舉來(lái)使用:user_color=(enumcolor)2;四技能點(diǎn)拓展——2共用體類(lèi)型數(shù)據(jù)使用注意事項(xiàng)共用體類(lèi)型數(shù)據(jù)具有兩個(gè)特點(diǎn):(1)同一個(gè)內(nèi)存段可以用來(lái)存放幾種不同類(lèi)型的成員,但是在同一時(shí)刻只能存放其中的一種,而不是同時(shí)存放幾種。換句話說(shuō),同一時(shí)刻只有一個(gè)成員起作用,其他的成員失效,即不是同時(shí)都存在和有效的。(2)共用體變量中起作用的成員是最后一次存放的成員,在存入一個(gè)新成員后,原有成員就失效。共用體變量的地址和它的各成員的地址都是同一地址。以下用法就是錯(cuò)誤的unionDatad1=10;//定義變量同時(shí)給變量賦值這會(huì)導(dǎo)致錯(cuò)誤提示:errorC2440:“初始化”:無(wú)法從“int”轉(zhuǎn)換為“Data”四技能點(diǎn)拓展——2共用體類(lèi)型數(shù)據(jù)使用注意事項(xiàng)同時(shí)需要注意一些特殊要求:(1)不能對(duì)共用體變量名賦值,也不能企圖引用
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年玉林貨運(yùn)從業(yè)資格仿真考題
- 2024商標(biāo)轉(zhuǎn)讓及品牌升級(jí)合同:攜手共進(jìn)品牌升級(jí)之旅3篇
- 2024商混合同范本:商混混凝土生產(chǎn)與質(zhì)量控制合作協(xié)議3篇
- 2025廚房設(shè)備銷(xiāo)售合同版
- 商業(yè)綜合體電力施工合同范本
- 城市公園旁咖啡館租賃合同
- 城市綠化帶擴(kuò)建植樹(shù)合同
- 出入境文件公證辦理規(guī)范
- 智能家居維修員招聘合同模板
- 汽車(chē)研發(fā)中心施工協(xié)議
- 鈸式換能器的共振特性研究
- 《我們?nèi)タ春!烽喿x答案
- 智慧酒店無(wú)人酒店綜合服務(wù)解決方案
- 考研英語(yǔ)一新題型歷年真題(2005-2012)
- 健身房會(huì)籍顧問(wèn)基礎(chǔ)培訓(xùn)資料
- 9脊柱與四肢、神經(jīng)系統(tǒng)檢查總結(jié)
- 秀場(chǎng)內(nèi)外-走進(jìn)服裝表演藝術(shù)智慧樹(shù)知到答案章節(jié)測(cè)試2023年武漢紡織大學(xué)
- 【高分復(fù)習(xí)筆記】王建《現(xiàn)代自然地理學(xué)》(第2版)筆記和課后習(xí)題詳解
- TSGD0012023年壓力管道安全技術(shù)監(jiān)察規(guī)程-工業(yè)管道(高清晰版)
- SMM英國(guó)建筑工程標(biāo)準(zhǔn)計(jì)量規(guī)則中文 全套
- 2023-2024學(xué)年浙江省富陽(yáng)市小學(xué)數(shù)學(xué)四年級(jí)上冊(cè)期末通關(guān)題
評(píng)論
0/150
提交評(píng)論