列舉(enum).

Slides:



Advertisements
Similar presentations
第一單元 建立java 程式.
Advertisements

勇闖「卡勒居」 學長姐經驗分享(文組).
高三學長姐繁星及個人申請上榜 經驗分享(理組)
企业高成长策划 杜志刚.
“Your Passion, We Support”
新世代計算機概論 第14章 程式語言.
趙靖宇時間-專治你的Monday blue
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
C语言程序设计 第十二章 位运算.
第十一章 結構.
C程序设计 第9章 自定义数据类型 主讲教师: 鲁 萍 西安建筑科技大学 理学院.
程式設計 博碩文化出版發行.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
Visual C++ introduction
.NET 程式設計入門(使用 C#) 講師:鄧智鴻.
複習 char name1[20]; //長度為20的字串 char name2[20]; //讀取字串 gets(name1);
补充内容 结构体 概述 定义结构体类型和定义结构体变量 结构体变量的引用 结构体变量的初始化 指针与结构体 用typedef定义类型的别名.
2 C++ 程式概論 2.1 C++ 程式結構 程式註解 // 插入標題檔 #include 2-3
编译原理与技术 类型检查 2018/11/21 《编译原理与技术》-类型检查.
適用於多選一 可減少if 與 else配對混淆的錯誤.
String C語言-字串.
结构体和共用体 2 梁春燕 华电信息管理教研室.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
Chap 9 结构 9.1 构建手机通讯录 9.2 结构变量 9.3 结构数组 9.4 结构指针.
101北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
第9章 自訂資料型態 – 結構 9-1 結構資料型態 9-2 結構陣列 9-3 指標與結構 9-4 動態記憶體配置 9-5 聯合資料型態
STRUCTURE 授課:ANT 日期:2010/5/12.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
C語言簡介 日期 : 2018/12/2.
類別(class) 類別class與物件object.
程序设计专题一 结构化程序设计与递归函数 主讲教师: 刘新国.
C 程式設計— 結構 台大資訊工程學系 資訊系統訓練班.
第十三章 其他的C語言課題.
Java 程式設計 講師:FrankLin.
第13章 结构体的应用 13.1 了解由用户构造的数据类型 13.2 结构体类型说明及结构体变量 13.3 结构体数组
計數式重複敘述 for 迴圈 P
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
|12 結構與列舉型態.
第一單元 建立java 程式.
C语言程序设计.
第十章 用户自定义数据类型 目录 学生信息管理系统的开发 结构体数据类型的概述 结构体变量的使用 结构体数组
OOP6 結構Struct 黃兆武.
目录 9.1 结构体类型 9.2 共用体类型 9.3 枚举类型 9.4 类型声明符typedef 1.
輸入&輸出 函數 P20~P21.
2011 邀请中国姐妹学校韩国语研修团项目 申请时间: ~5月 27日 / 项目地点: 汉阳大学 安山校区 / 项目时间: (星期日) ~ 7.22(星期五) 费用: 100万元(韩币/人 (包含项目 - 学费, 教材费, 宿舍费, 接机费用及所有文化体验活动项目费用)
C++语言程序设计 C++语言程序设计 第九章 类的特殊成员 第十一组 C++语言程序设计.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
認識常數與變數 學習C++所提供的各種基本資料型態 瞭解溢位的發生 學習認識資料型態之間的轉換
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
第二章 类型、对象、运算符和表达式.
計算機程式設計 老師:蘇炳煌 助教:楊斯竣.
#include <iostream.h>
北一女中 資訊選手培訓營 妳不可不了解的指標 Nan.
本节内容 指针类型.
Introduction to the C Programming Language
第4章 鏈結串列(Linked Lists) 4-1 動態記憶體配置-(6) 4-2 鏈結串列的基礎-(7)
Thanksgiving Day 4-1.
目录 12.1 位运算符 12.2 位域(位段) 1.
Introduction to the C Programming Language
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
多重條件選擇敘述
Programming & Language Telling the computer what to do
鄭士康 國立台灣大學 電機工程學系/電信工程研究所/ 資訊網路與多媒體研究所
Array(陣列) Anny
C語言程式設計 老師:謝孟諺 助教:楊斯竣.
第六章 复合数据类型 指针的声明与使用 数组的声明与使用 指针与数组的相互引用 字符串及相关库函数 new与delete
本节内容 指针类型 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Introduction to the C Programming Language
安排座位.
C语言基础学习 从外行到入门.
Presentation transcript:

列舉(enum)

列舉型態 列舉型態(enumeration)是一種特殊的常數定義方式。 列舉型態可使我們定義自己的資料型態,及設定其值。 程式的可讀性提高。 列舉型態的定義及宣告方式格式如下: enum 列舉型態名稱 { 列舉常數1, 列舉常數2, … 列舉常數n, }; enum 列舉型態名稱 變數1,變數2,…,變數m; 定義列舉型態

範例 範例(定義與宣告變數分開): 範例(定義後立即宣告變數): enum color { red, blue, green, }; enum color coat, hat; /*宣告列舉型態color之變數coat與hat */ 定義列舉型態color enum color /*宣告列舉型態color */ { red, blue, green, } coat , hat; /*定義完列舉型態後,立即宣告變數coat與hat */ 列舉常數

ex1: enum color{ red, blue, green} coat, hat; 減少程式行數的寫法: ex1: enum color{ red, blue, green} coat, hat; ex2: enum week{ Sun, Mon, Tue, Wed, Thu, Fri, Sat}; ex3: enum cars{ Benz, BMW, Audi, Accord}; enum cars mycar, yourcar; mycar,yourcar這兩個變數以enum cars為其資料型態,且這兩個變數的可能值不可能是列舉子以外的值。 mycar =Lotus; ---不合法 yourcar=Mini; ----不合法

enum的使用與初值設定 宣告列舉型態變數後,這個變數的值就只能是列舉常數裡的其中一個。 無特別指定的情況下,C語言會自動給列舉常數一個整數值,列舉常數1的值為0,列舉常數2的值為1以此類推….. 上一頁的範例中,我們定義了列舉型態color,並宣告該列舉型態的變數coat與hat,沒有特別指定下,編譯程式將列舉常數從0開始的整數看待,red的值會視為0,blue的值視為1,green的值視為2。 可以改變其內定值: ex: enum color { red=10, blue, green};

列舉型態的變數所佔的位元組與整數型態相同,皆為4個位元組 列舉型態的使用-範例1 #include<stdio.h> int main(void) { enum color red, green, blue, }hat; printf("sizeof(hat)=%d\n",sizeof(hat)); printf("red=%d\n",red); printf("green=%d\n",green); printf("blue=%d\n",blue); hat=blue; if(hat==blue) printf("你選擇了藍色的帽子\n"); else printf("你選擇了非藍色的帽子\n"); system("pause"); return 0; } 列舉型態的變數所佔的位元組與整數型態相同,皆為4個位元組

將Andy字串複製到結構employee的name成員 列舉型態的使用-範例2 #include<stdio.h> #include<string.h> #include<stdlib.h> int main() { enum per{manager,SE,SA,sales}; struct{ char name[20]; float salary; enum per category; }employee; strcpy(employee.name,"Andy"); employee.salary=25000; employee.category=SE; printf("Name=%s\n",employee.name); printf("Salary=%6.2f\n",employee.salary); printf("Category=%d\n",employee.category); if(employee.category==manager) printf("%s is a manager.",employee.name); else printf("%s is not a manager.\n",employee.name); system("pause"); return 0; 將Andy字串複製到結構employee的name成員

typedef typedef 可以重新定義資料型態的名稱。 格式如下: typedef 資料型態 識別字; ex: typedef unsigned int BYTE; 表示BYTE與unisgned int 具有相同的效果 (1) typedef unsigned int BYTE; BYTE num1,num2; (2) unsigned int num1,num2; 意義相同

將結構改以typedef定義 typedef struct student struct student { { int id; char name[20]; int score; } ST; ST st1; struct student { int id; char name[20]; int score; } ; struct student st1; 以ST來定義,而不需struct student一長串的資料型態名稱。

Typedef使用範例 #include<stdio.h> #include<string.h> void main() { typedef struct student int id; char name[20]; int score; }ST; ST st1; st1.id=2005; strcpy(st1.name,"Johnson"); st1.score=80; printf("%d %s %d\n",st1.id,st1.name,st1.score); system("pause"); }