当前位置: 首页 > news >正文

邢台地区网站建设口碑好中山百度推广公司

邢台地区网站建设口碑好,中山百度推广公司,推广引流平台排行榜,天元建设集团有限公司济南第六建筑工程分公司官网🌇个人主页:_麦麦_ 📚今日名言:如果不去遍历世界,我们就不知道什么是我们精神和情感的寄托,但我们一旦遍历了世界,却发现我们再也无法回到那美好的地方去了。当我们开始寻求,我们就已…

🌇个人主页:_麦麦_

📚今日名言:如果不去遍历世界,我们就不知道什么是我们精神和情感的寄托,但我们一旦遍历了世界,却发现我们再也无法回到那美好的地方去了。当我们开始寻求,我们就已经失去,而我们不开始寻求,我们根本无法知道自己身边的一切是如此可贵。——《小王子》

目录

 

一、前言

 二、正文

1.枚举

1.1枚举的定义 

 1.2枚举的优点

3.3枚举的使用

2.联合体(共用体)

2.1联合类型的定义

2.2联合的特点

 2.3联合大小的计算

 三、结语


一、前言

        在前几篇文章中我们已经了解了结构体并用结构体来实现了通讯录,但其实C语言中的自定义类型还有两大成员:枚举联合。在接下来的篇幅中我们就将对这两位成员进行详细地讲解!

 二、正文

1.枚举

        枚举,顾名思义就是一一列举,把可能的取值一一列举。比如我们显示生活中:一周的星期一到星期日是有限的7天,可以一一列举。性别也可以一一列举成:男、女。

1.1枚举的定义 

         枚举是一种自定义类型,有了类型我们就可以创建变量,那么具体要怎么使用呢,见如下代码:

enum Day//星期
{Mon,Tues,Wed,Thur,Fri,Sat,Sun
};enum Sex//性别
{MALE,FEMALE,SECREAT
};enum Color//颜色
{Red,Green,Blue
};

         以上定义的“enum Day”,“enum Sex”,“enum Color”都是枚举类型。{}中的内容是枚举类型的可能取值,也叫枚举常量。这些可能取值都是有值的,默认从0开始,一次递增1,当然也可以赋初值

#include <stdio.h>
enum Color//颜色
{Red=5,Green=2,Blue=0
};enum Sex//性别
{MALE,FEMALE,SECREAT
};
int main()
{printf("MALE=%d\n", MALE);printf("FEMALE=%d\n", FEMALE);printf("SECREAT=%d\n", SECREAT);printf("小伙伴们%d", Red);printf("%d", Green);printf("%d", Blue);return 0;
}

注:一旦当我们初始化之后,就不可以再修改默认值了哦。 

enum Color//颜色
{Red=5,    //初始化为5Green=2,  //初始化为2Blue=0    //初始化为0
};int main()
{Red=2;    //初始化之后是不可以再改变默认值的return 0;
}

 1.2枚举的优点

        有的小伙伴可能会问:既然枚举中的内容是枚举常量,那么我们也可以使用“#define”来定义常量,为什么非要使用枚举呢?

枚举的优点

1.增加代码的可读性和可维护性

2.防止了命名污染(封装)

3.和#define定义的标识符有类型检查,更加严谨

4.便于调试

5.使用方便,一次可以定义多个常量

        下面我们以通讯录为例来讲讲枚举为什么可以增加代码的可读性。在看过上一篇通讯录的文章后,有的小伙伴下来在敲写case代码的时候,可能看到数字一时无法想起这个数字到底代表的是什么功能,那么我们就使用枚举来对通讯录进行一次小小的优化。

enum fac
{Exit,Add,Del,Search,Modify,Show,Sort
};int main()
{contact	Contact;	//创建通讯录contact tmp;Init_Contact(&Contact);		//初始化通讯录Init_Contact(&tmp);		int input = 0;do{menu();		//打印菜单printf("请选择你所需的功能:");scanf("%d", &input);switch (input){case Add:AddContect(&Contact);break;case Del:DelContect(&Contact);break;case Search:SearchContect(&Contact);break;case Modify:ModifyContect(&Contact);break;case Show:ShowContect(&Contact);break;case Sort:sortContect(&Contact,&tmp);break;case 0:printf("退出通讯录\n");break;default:printf("输入错误,请重新输入\n");}}while (input);return 0;
}

3.3枚举的使用

enum Color //颜色
{RED=1,GREEN=2,BLUE=4
};enum Color clr=GREEN;

 注:既然枚举是一种类型,就可以重定义

typedef enum Color //颜色
{RED=1,GREEN=2,BLUE=4
}Color;

2.联合体(共用体)

2.1联合类型的定义

        联合也是一种特殊的自定义类型

        这种类型定义的变量也包含一系列的成员,特征是这些成员公用同一块空间(所以联合也叫共用体),但是不能同时使用这块空间。可能小伙伴们听得还是有些云里雾里,代码如下:

//联合体的定义
#include <stdio.h>
union UN
{char c;int i;
};int main()
{union UN un;//猜猜结果如何?printf("%d\n", sizeof(un));printf("%p\n", &un);printf("%p\n", &(un.c));printf("%p\n", &(un.i));return 0;
}

        我们可以看出联合体的大小并不是我们想象的至少是5,而是4。并且两个成员的起始地址都是相同的,也可以间接说明它们是共用同一片空间的。 

2.2联合的特点

        联合的成员是共用同一块内存空间的,这样一个联合变量的大小,至少是最大成员的大小(因为联合至少有能力保存最大的那个成员)。依旧以上面代码画图演示。

        我们可以发现 成员’c‘和成员’i‘在第一个字节的空间是共用的,不过这一块空间并不是同时使用的,当成员’c‘使用的时候就会将这块空间修改成自己的内容,成员’i‘也是如此。

 2.3联合大小的计算

        联合的大小至少是最大成员的大小

        当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍

//联合的大小
#include <stdio.h>
union UN
{char c[5];	//对齐数1int n;		//对齐数4
};int main()
{union UN un;printf("%d\n", sizeof(un));return 0;
}

 三、结语

          到此为止,关于C语言自定义类型点的学习就告一段落了。

          关注我 _麦麦_分享更多干货:_麦麦_的博客_CSDN博客-领域博主
         大家的「关注❤️ + 点赞👍 + 收藏⭐」就是我创作的最大动力!谢谢大家的支持,我们下期见!

http://www.qdjiajiao.com/news/2993.html

相关文章:

  • 网购网站建设论文济南seo优化外包服务公司
  • 做时时彩网站平台软件下载百度搜索热度指数
  • 婚纱网站建设 最开始360优化大师官方最新
  • wordpress的地址在本地官网seo哪家公司好
  • 云南智能建站珠海网站seo
  • 网站开发需求方案模板深圳网站优化公司哪家好
  • 高稳定性的网站设计制作福州网站开发公司
  • 中国供应网网站快速优化排名排名
  • wordpress 视频 批量上海搜索引擎优化seo
  • 如何建设机器人教育网站网络销售平台有哪些软件
  • 南昌专业做网站公司哪家好杭州网站seo价格
  • 杭州模板建站哪家好做网站优化推广
  • 做长海报的网站公司建立网站的步骤
  • microsoft做网站深圳seo教程
  • 可以访问任何网站的浏览器seo基础知识考试
  • 个人网站开发教程宁波seo网络推广外包报价
  • 网站建设投标书seo顾问培训
  • 用php做电子商务网站百度推广点击收费标准
  • 网站建设开发软件百度问答平台入口
  • 武汉网站建设前十百度搜索关键词数据
  • 网站文章做排名百度联盟怎么加入
  • 寿光做网站的网站建设方案推广
  • 网站单页面怎么做的百度公司是国企还是私企
  • 网站模板内容页在哪郑州黑帽seo培训
  • 吉林企业做网站广告软文是什么意思
  • 做网站优化步骤制作app平台需要多少钱
  • 龙岗网站设计讯息b2b电商平台
  • 做视频网站审核编辑有假么武汉seo招聘网
  • 专做美容师招聘网站我想注册一个网站怎么注册
  • 电商平台正在建设中网站页面提示深圳搜索引擎优化seo