一、枚举的概念

枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数。当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型。

比如,你可以用一个枚举类型的变量来表示季节,因为季节只有4种可能的取值:春天、夏天、秋天、冬天。

二、枚举类型的定义

一般形式为:enum 枚举名 {枚举元素1,枚举元素2,……};

enum Season {spring, summer, autumn, winter};

三、枚举变量的定义

前面只是定义了枚举类型,接下来就可以利用定义好的枚举类型定义变量,跟结构体一样,有3种方式定义枚举变量

1.先定义枚举类型,再定义枚举变量

 enum Season {spring, summer, autumn, winter};

 enum Season s;

2.定义枚举类型的同时定义枚举变量

enum Season {spring, summer, autumn, winter} s;

3.省略枚举名称,直接定义枚举变量

enum {spring, summer, autumn, winter} s;

上面三种方式定义的都是枚举变量s

四、枚举使用的注意

1> C语言编译器会将枚举元素(spring、summer等)作为整型常量处理,称为枚举常量。

2> 枚举元素的值取决于定义时各枚举元素排列的先后顺序。默认情况下,第一个枚举元素的值为0,第二个为1,依次顺序加1。

 #include <stdio.h>

 int main()
{
// 1.定义枚举类型
enum Season
{
spring,
summer,
autumn,
winter
}; // 2.定义枚举变量
enum Season s = winter; printf("%d\n", s); return ;
}
打印结果为:3

也就是说spring的值为0,summer的值为1,autumn的值为2,winter的值为3

3> 也可以在定义枚举类型时改变枚举元素的值

 #include <stdio.h>

 int main()
{
// 1.定义枚举类型
enum Season
{
spring = ,
summer,
autumn,
winter
}; // 2.定义枚举变量
enum Season s = winter; printf("%d\n", s); return ;
}

打印结果为:4

没有指定值的枚举元素,其值为前一元素加1。

五、枚举变量的基本操作

1.赋值

可以给枚举变量赋枚举常量或者整型值

 #include <stdio.h>

 int main()
{
// 1.定义枚举类型
enum Season {spring, summer, autumn, winter} s; // 2.定义枚举变量
s = spring; // 等价于 s = 0;
printf("%d\n", s); s = winter;//等价于s = 3;
printf("%d\n", s); return ;
}

打印结果   0

3

2.遍历枚举元素

enum Season {spring, summer, autumn, winter} s;

// 遍历枚举元素
for (s = spring; s <= winter; s++) {
printf("枚举元素:%d \n", s);
}

输出结果:   枚举元素:0

      枚举元素:1

      枚举元素:2

      枚举元素:3

数据类型总结

一、基本数据类型

1.int

1> long int、long:8个字节  %ld

2> short int、short:2个字节 %d %i

3> unsigned int、unsigned:4个字节 %zd

4> signed int、signed、int:4个字节 %d %i

2.float\double

1> float :4个字节 %f

2> double:8个字节 %f

3.char

1> 1个字节 %c %d

2> char类型保存在内存中的是它的ASCII值

'A' --> 65

二、构造类型

1.数组

1> 只能由同一种类型的数据组成

2> 定义:数据类型 数组名[元素个数];

2.结构体

1> 可以由不同类型的数据组成

2> 先定义类型,再利用类型定义变量

三、指针类型

1.变量的定义

int *p;

2.间接操作变量的值

int a = 10;

p = &a;

*p = 20;

四、枚举类型

使用场合:当一个变量只允许有几个固定取值时

c语言的枚举(遍历枚举)与数据类型总结的更多相关文章

  1. 2019-8-31-C#-遍历枚举

    title author date CreateTime categories C# 遍历枚举 lindexi 2019-08-31 16:55:58 +0800 2018-03-13 20:42:2 ...

  2. 知识点:C语言进阶提高篇,自定义数据类型:枚举

    一.枚举的概念 枚举是C语言中的一种基本数据类型,并不是构造类型,它可以用于声明一组常数.当一个变量有几个固定的可能取值时,可以将这个变量定义为枚举类型.比如,你可以用一个枚举类型的变量来表示季节,因 ...

  3. C语言第十讲,枚举类型简单说明

    C语言第十讲,枚举类型简单说明 一丶C语言中的枚举类型(ENUM) 在我们实际工作中,或者编写代码中.我们有的时候会用固定的值.而且不是很多. 这个时候就可以使用枚举了.如果我们使用#define显然 ...

  4. .NET反射简单应用———遍历枚举字段

    反射(Reflection)是一个非常强大的工具,可以用来查看和遍历类型和类型成员的元数据:动态创建类型实例,动态调用所创建的实例方法.字段.属性:迟绑定方法和属性.此次要介绍的是使用反射查看类型成员 ...

  5. VM页面中遍历枚举类

    1)自定义的枚举类如下所示: public enum BusType { MID_SMALL(1, "中小件"), FRESH(2, "生鲜"), GLOBAL ...

  6. C# 遍历枚举(枚举是目的,遍历(获取)是手段)

    C# 遍历枚举   C#中,如何获取(遍历)枚举中所有的值: public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } priva ...

  7. C# 遍历枚举

    C#中,如何获取(遍历)枚举中所有的值: public enum Suits { Spades, Hearts, Clubs, Diamonds, NumSuits } private static ...

  8. Java Enum枚举 遍历判断 四种方式(包括 Lambda 表达式过滤)

    示例代码如下: package com.miracle.luna.lambda; import java.util.Arrays; /** * @Author Miracle Luna * @Date ...

  9. 吴裕雄--天生自然C语言开发:enum(枚举)

    enum DAY { MON=, TUE, WED, THU, FRI, SAT, SUN }; enum DAY { MON=, TUE, WED, THU, FRI, SAT, SUN }; en ...

随机推荐

  1. OpenWRT添加模块 Makefile和Config.in

    添加模块编译 在网上找了一下,很多关于编译Openwrt系统的资料,不过这些事情芯片厂商提供的开发包都已经办得妥妥了,但是没有找到系统介绍的资料,添加一个包的介绍有不多,其中有两个很有参考价值: ht ...

  2. SpringMVC + Spring + Mybatis+ Redis +shiro以及MyBatis学习

    SpringMVC + Spring + Mybatis+ Redis +shiro http://www.sojson.com/shiro MyBatis简介与配置MyBatis+Spring+My ...

  3. 【NOIP2015提高组】Day1 t1神奇的幻方

    一大淼题,直接瞎搞即可,不过一定要仔细看题目给定的条件. #include<iostream> #include<cstdio> #include<cstring> ...

  4. MyBatis 开发记录

    1.在classpath下创建log4j.properties # Global logging configuration log4j.rootLogger=DEBUG, stdout # Cons ...

  5. ubuntu16.04, Matlab2016b caffe编译安装

    在Ubuntu上编译安装caffe还是个比较蛋疼的事,有时候会莫名其妙的碰到很多库的问题,这篇文章就把我在Ubuntu上编译安装caffe的过程和遇到的问题大致记录一下. 1.安装opencv htt ...

  6. C++开发象棋一 绘制棋盘

    这是我要和大家分享的基于C++和MFC开发的一个象棋程序,目的是练习编程实践和大家分享同时希望大家能给出指教. 进入主题 一.棋盘分析 这是我绘制的棋盘,棋盘的组成由9条竖线和10条横线构成.这儿我们 ...

  7. LeetCode 40. Combination Sum II (组合的和之二)

    Given a collection of candidate numbers (C) and a target number (T), find all unique combinations in ...

  8. js 两个日期比较相差多少天

    var day1 = new Date("2017-9-17"); var day2 = new Date("2017-10-18"); console.log ...

  9. AJAX,PHP,前端简单交互制作输入框效果

    PHP数据 <?php // 数据 $arr = array( array("百度", "http://www.baidu.com/"), array(& ...

  10. POJ1222EXTENDED LIGHTS OUT(高斯消元)

    EXTENDED LIGHTS OUT Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 11815   Accepted: 7 ...