黑马程序员——c语言基础:枚举和typedef

C语言枚举类型详解 如果需要添加新的颜色或修改现有的颜色,只需修改枚举定义和相应的代码逻辑,而无需修改大量使用该枚举类型的代码。在上面的语法中,枚举类型名是我们自己定义的标识符,用于表示该枚举类型。在上面的代码中,我们定义了一个表示月份的枚举类型Month,并为每个枚举常量手动赋值,使其与对应的月份相对应。增加可维护性:如果需要修改枚举类型的取值范围,只需修改枚举定义即可,而无需修改所有使用该枚举类型的地方。增加可维护性:如果需要修改枚举类型的取值范围,只需修改枚举定义即可,而无需修改所有使用该枚举类型的地方。 阅读详情

1.枚举

 枚举类型:C语言提供了一种类型,这种类型的变量的取值被限定在一定范围内。

 枚举类型的定义:enum 枚举类型名{ 枚举值1,枚举值2,……};

 

 枚举类型变量的定义

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

    2)定义枚举的同时,定义变量

 枚举变量的值

    枚举类型定义完成以后,系统会自动给枚举的每个元素都赋一个从0开始的整形的初值,也可以手动赋值。

 使用举例:

#include <stdio.h>


//定义一个枚举类型,保存星期几

enum weekday{

    Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, sunday

};


int main(int argc, const char * argv[]) {

    

    // 1.枚举类型变量的定义

    enum weekday day1; // 先定义枚举类型,再定义枚举变量,day1的取值是有范围的,必须为枚举类型weekday中枚举值列表中的一个

    enum Sex{sexMan, sexWoman} isex; // 定义枚举的同时定义变量

    

    // 2.枚举类型变量的初始化

    day1 = Monday;

    isex = sexMan;


    // 3.枚举变量的使用

    printf("%d\n", day1);

    

    // 4.枚举变量的应用

    struct Person {

        char *name;

        enum Sex isex; // 性别只能从sexMan和sexWoman中选择

    };

    return 0;

}



2.typedef

 typedef作用:用于为数据类型取“别名”。

 typedef定义形式: typedef 原类型名 新类型名; // 其中原类型名含有定义部分,新类型名一般用大写表示,以便于区别。


 使用举例:

#include <stdio.h>


int sum(int a, int b){

    return a + b;

}

int main(int argc, const char * argv[]) {

    // 1.给基本数据类型起别名

    typedef int DOUBLE;

    

    // 2.给数组起别名

    typedef DOUBLE ARRAY[3];

    ARRAY a1 = {1,2,3}; // int a1[3] = {1,2,3};

    printf("%d %d %d\n", a1[0], a1[1], a1[2]);

    

    // 3.给结构体起别名

    struct Student{

        int age;

        char *name;

    };

    typedef struct Student STU;

    STU stu1 = {13,"lucy"};

    printf("%d %s\n",stu1.age, stu1.name );

    

    typedef struct {

        int wheels;

        int speed;

    } CAR;

    CAR c1 = {4,180};

    printf("%d %d\n",c1.wheels, c1.speed);


    

    // 4.给枚举类型起别名(与结构体方法相同)

    typedef enum Sex{

        man,

        woman

    } SEX;

    SEX isex = man;

    printf("%d \n",isex);


    

    // 5.给函数指针起别名

    typedef int (*P)(int, int); // P是一个别名

    P f1 = sum;

    printf("%d", f1(23,34));

    return 0;

}



手把手教你用STM32的ADC读取PT100模块,实现高精度温度采集(附完整代码) 本文详细介绍了如何利用STM32的ADC模块读取PT100温度传感器信号,实现高精度温度采集系统。从硬件选型、ADC配置校准到温度计算算法和软件滤波技术,提供完整的实现方案和优化技巧,帮助工程师快速构建稳定可靠的温度监测系统。 阅读详情

相关推荐

【项目分享】RailTracker: 火车票务数据采集与分析

从12306使用爬虫爬取火车站及车次信息、火车票价 通过本项目,我们将带领访问者手把手完成火车票数据采集、数据清洗、数据集成、可视化的一整个流程!

zhushatong的博客 3345

C语言枚举类型enum(全面详细直观)

学完枚举类型必看的一篇文章!!!

weixin_73233099的博客 7万+

【博客汇总】UV打印机博客汇总

UV平板机博客汇总

Print World的专栏 1746

39 C 语言枚举类型、枚举常量、枚举变量、枚举的遍历、枚举数组、枚举与 switch

本文全面介绍了枚举(Enum)在编程中的基本概念与用法。首先阐述了枚举的定义及其类型,包括语法格式、枚举元素的特点,并通过案例演示了如何定义枚举类型。接着,深入探讨了枚举变量的概念、定义方式及其实战应用。文章还详细讲解了枚举的遍历方法,包括连续和非连续枚举常量的遍历技巧。此外,还介绍了枚举在 switch 语句中的使用以及枚举数组的相关知识。本文旨在帮助读者深入理解枚举,并能在实际编程中灵活运用。

大模型全栈工程师 · Thanks_ks 6753

西安交通大学SQ轴承数据集(文末附数据)

西安交通大学SQ轴承数据集

qq_43271683的博客 1万+

555时基芯片的5种经典电路设计:从方波发生器到PWM调光实战

本文深入解析了555时基芯片的5种经典电路设计,从基础的无稳态方波发生器、单稳态触发器,到实用的占空比可调PWM信号源,并重点介绍了如何引入TVS保护电路增强系统鲁棒性。最后通过一个带保护的PWM LED调光台灯实战项目,综合展示了信号生成、功率驱动与电路保护的核心技术,是电子爱好者掌握模拟电路设计与应用的绝佳指南。

weixin_29207439的博客 492

【C语言】枚举类型

00. 目录 文章目录00. 目录01. 枚举概述02. 枚举三种用法03. 枚举的本质04. 枚举与宏05. 枚举在Linux内核中应用06. 使用枚举需要注意的问题07. 附录 01. 枚举概述 **枚举(enum)**是C语言的一种特殊类型。当我们在编程中遇到定义一些固定长度或范围的数值时,可以考虑使用枚举类型。使用枚举可以让我们的程序可读性更强、看起来更加直观。举个例子,如果我们在编程中需要使用数字0-6分别表示星期日-星期六,程序的可读性就不高,我们需要翻手册或者看程序注释才能知道每个数字具体代表

C/C++软件工程师、嵌入式软件工程师、物联网研发工程师、C/C++讲师、物联网讲师、嵌入式讲师、鸿蒙讲师---欢迎大家一起交流(私信添加博主微信) 6233

SecureCRT多种配色方案配置文件

位置 C:\Users%USERNAME%\AppData\Roaming\VanDyke\Config\Global.ini S:"SecureCRT Tab State"=1,1,1,0,0 S:"SecureFX Local Tab State"=1,-1,200 D:"Max Chat Window History"=000000c8 D:"Active Window Alpha Transparency"=000000f0 D:"Save Keymaps As Unicode"=00000000

神棍之路 3712

C enum(枚举)

枚举 它可以让数据更简洁,更易读。 枚举语法定义格式为: enum 枚举名 {枚举元素1,枚举元素2,……}; 第一个枚举成员的默认值为整型的 0,后续枚举成员的值在前一个成员上加 1。我们在这个实例中把第一个枚举成员的值定义为 1,第二个就为 2,以此类推。 可以在定义枚举类型时改变枚举元素的值: enum season {spring, summer=3, autumn, winter}...

Kilvin的博客 5038

VS2019编译使用log4cplus 1.2.0

logger.properties 文件。第三步,创建项目来测试,配置库。第二步,使用VS2019编译。

h a 6 6 6 c k 为 你解决复杂难题! 528

YOLOv5 实现 10 种热力图可视化方式教程 | GradCAM XGradCAM ScoreCAM LayerCAM HiResCAM EigenCAM....

基于梯度计算类激活图,是最经典的热力图生成方法之一。Grad-CAM的改进版,通过引入梯度加权的方式,提高了热力图的定位精度。基于类别的得分计算类激活图,对噪声具有更强的鲁棒性。基于特定层的特征图计算类激活图,可以灵活选择不同的层进行分析。通过上采样将低分辨率的特征图恢复到原始图像大小,提高了热力图的分辨率。基于特征图的特征向量进行PCA降维,得到更简洁的热力图。对Grad-CAM的进一步改进,通过加权平均的方式,提高了热力图的质量。基于积分梯度的方法,可以解释模型对输入的每个特征的贡献。

weixin_39818775的博客 2375

黑马程序员——c语言基础:结构体和枚举---typedef的使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、什么是结构体 当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数 据都具有不同的类型,姓...

aichi1692的博客 297

【100%通过率】2023华为od机试C卷【电脑病毒感染】C++ 实现

一个局域网内有很多台电脑,分别标注为 0 ~ N-1 的数字。相连接的电脑距离不一样,所以感染时间不一样,感染时间用t 表示。其中网络内一台电脑被病毒感染,求其感染网络内所有的电脑最少需要多长时间。如果最后有电脑不会感染,则返回-1.

MISAYAONE的博客 1727

黑马程序员———C语言———【枚举、typedef、宏、static和extern、文件操作】

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- ——————————————————————————————————————————————————————————————————— 一、枚举类型 1、概念:C语言提供了一种类型,这种类型的变量的取值被限定在一定的范围之内。 2、定义:enum  枚举类型名 { 枚举值1 , 枚举

雪碧i的博客 1255

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

黑马程序员------C语言基础 结构体、枚举及关键字 typedef

构造类型 结构体、枚举和关键字typedef      构造类型 由多个或者已经定义的类型元素用构造的方法,构造新的类型     构造类型:数组 结构体 一、结构体     1.结构体概念:         由相同类型或者不同类型的数据用构造方法,构造的类型     结构体的定义         struct 结构体名{         成员列表     }      定义一个

Chxinyu92的博客 683

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

黑马程序员————C语言——结构体、枚举、typedef

----<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------

tl18353359689的专栏 446

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

黑马程序员C语言基础(第八天)复合类型(自定义类型)(结构体)、共用体(联合体)、枚举enum、 typedef

https://www.bilibili.com/video/BV1jW411K7z8/?p=42&spm_id_from=pageDriver 文章目录9. 复合类型(自定义类型)9.1 结构体9.1.1 概述9.1.2 结构体变量的定义和初始化9.1.3 结构体成员的使用9.1.4 结构体数组9.1.5 结构体套结构体9.1.6 结构体赋值9.1.7 结构体和指针1)指向普通结构体变量的指针2)堆区结构体变量3)结构体套一级指针9.1.8 结构体做函数参数1)结构体普通变量做函数参数2)结构体指

Dontla的博客 809

黑马程序员——【C语言】typedef的用法

一、基本定义:声明一个新的类型名来代替已有的类型,从而我们方面使用。 二、使用typedef的场合: 1>基本数据类型 2>指针 3>结构体 4>枚举 5>指向函数的指针 下面分别举例来说明一下具体用法 1.1定义基本数据类型 typedef int Myint; //Myint 新的类型名 相当于给int取了个别名 //这里就可以用这个别名来定义int类型

Damson 509

【黑马程序员】————typedef

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、typedef作用简介 * 我们可以使用typedef关键字为各种数据类型定义一个新名字(别名)。 1 #include <stdio.h> 2 3 typedef int Integer; 4 typedef unsigned int ...

aa123321621的博客 208

黑马程序员——13-C语言之typedef

 一、作用 给已经存在的类型起一个新的名称 二、使用场合 (1)基本数据类型 typedef int MyInt; typedef MyInt MyInt2;   int a=10; MyInt b = 10; MyInt2 c = 20;   (2)指针 给指针类型char *起一个新的类型名称String,Str

yqlqt的专栏 416

黑马程序员——c语言复杂数据类型:结构体和枚举,typedef的使用

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 一、什么是结构体 当一个整体由多个数据构成时,我们可以用数组来表示这个整体,但是数组有个特点:内部的每一个元素都必须是相同类型的数据。 在实际应用中,我们通常需要由不同类型的数据来构成一个整体,比如学生这个整体可以由姓名、年龄、身高等数据构成,这些数 据都具有不同的类型,姓名可以

jerome3的专栏 904

黑马程序员——C语言基础——typedef的用法

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.typedef的定义和作用 typedef是C语言的关键字,作用是为一种数据类型定义一个新名字。数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct 等)。 在编程中使用typedef目的一般有两个: 1,给变量一个易记且意义明确的新名字, 2,

qq_22792789的专栏 538

黑马程序员——零基础学习iOS开发——08 结构体、枚举、typedef

结构体、枚举、typedef

demon_csd的专栏 663

[黑马程序员][C语言] typedef

------Java培训、Android培训、iOS培训、.Net培训期待与您交流! ------- 简介 typedef关键字用于:为各种数据类型定义一个新名字(别名)。 例如:#include typedef int Integer; typedef unsigned int UInterger; typedef float Float; int

sajiner的专栏 393

黑马程序员_iOS开发C语言基础之关键字typedef、static、extern使用

1、typedef的基本使用 #include   /*   1.作用:给已经存在的类型起一个新的名称   2.使用场合     1>基本数据类型     2>指针     3>结构体     4>枚举     5>指向函数的指针   */ //******************************************

LyWsLxYBoY的专栏 980

黑马程序员——c语言基础之结构体

------- android培训、java培训、期待与您交流! ---------- C语言构造类型 构造数据类型是根据已定义的一个或多个数据类型用构造的方法来定义的。也就是说,一个构造类型的值可以分解成若干个“成员”和“元素”。每个“成员”都是一个基本数据类型或又是一个构造类型。   定义结构体的方法 一般形式: struct 结构名{ 成员表列 }; 注意:最后的“;”

zhang2292的博客 552
上一篇: 黑马程序员——c语言基础:结构体(高级)
下一篇: 黑马程序员——c语言基础:宏和条件编译
gamhunter
博客等级 码龄12年 15粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值