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

网站快速优化排名排名青岛关键词排名哪家好

网站快速优化排名排名,青岛关键词排名哪家好,物业公司取名字大全免费,网站开发终止协议书本章概述 联合体类型的声明联合体的特点联合体的大小的计算枚举类型的声明枚举类型的优点枚举类型的使用枚举类型的大小彩蛋时刻#xff01;#xff01;#xff01; 联合体类型的声明 概述#xff1a;联合体的关键字为 union。它的结构和结构体是一样的。进行展示#xf… 本章概述 联合体类型的声明联合体的特点联合体的大小的计算枚举类型的声明枚举类型的优点枚举类型的使用枚举类型的大小彩蛋时刻 联合体类型的声明 概述联合体的关键字为 union。它的结构和结构体是一样的。进行展示 union tag {mem_list; }var_list;联合体的结构成员列表访问方式和定义变量与结构体是一样的在这里不再过多的陈述。但是它俩唯一的区别就是——编译器只为联合体中最大的成员变量分配足够的空间。 也就是说一个联合体的大小至少是最大成员变量的大小其它所有的较小成员就和最大成员共用一个内存空间。事实如此吗进行代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h //联合体的声明 union Un {char c;int i; }; int main() {union Un s {0};printf(%p\n,s);printf(%p\n, (s.c));printf(%p\n, (s.i));return 0; }结果运行图 我们发现联合体变量的起始地址和内部成员的地址是一样的看来就是共用一个空间。如图所示 这就和结构体有很大的区别。结构体的每个成员都有独立空间但是联合体的所有成员共用一个空间。因此联合体也叫共用体。进行代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h //联合体的声明 union Un {char c;int i; }; int main() {printf(%zd\n,sizeof(union Un));return 0; } 结果运行图 char c占有1个字节int i 占有4个字节。咱们在上面讲过了编译器只为联合体中最大的成员分配足够的空间所以这个结构体的大小就是4个字节。 联合体的特点 前面咱们讲过了联合体中所有的成员共用一个空间。如图所示 讲到这里可能就有疑问了竟然所有的成员共用一个空间那么改其中一个成员的数据就会导致其它成员的数据改变事实是这样的吗我们就以上面的代码进行调试一下 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h //联合体的声明 union Un {char c;int i; }; int main() {union Un s {0};s.i 0x11223344;s.c 0;return 0; }内存调试图 事实就是如此——互相影响。所以当我们要用联合体时我们只能用其中一个成员影响到其它成员时也可以使用不止一个不影响其它成员时。讲到这里可能有人就抱怨了联合体竟然这么鸡肋为什么还要用它呢这就是你的格局没打开了。联合体的特点就是所有的成员共用一个空间这不就省内存空间了吗。我们接下来举个生活中的例子进行代码实现 比如我们要搞一个促销活动促销的产品有杯子书本和衬衫。 它们共同有的特征是库存量和价格。 它们各自的特征 杯子 书本 衬衫设计 作者 设计书名 大小页数 颜色当我们想把这些商品进行展示就要把这些特征全部包含进去。我们下意识就会想到结构体写的代码如下 struct git_list {int kucun;double price;//杯子char sheji[20];//书本char zuozhe[30];char shuming[40];int yeshu;//衬衫int size;char color[10]; };但是当我们用这个结构体创建变量的时候比如struct git_list book 或者 struct git_list mark。有些特征我们是使用不到的。但是内存也要为这些没用到的特征创建空间这就很浪费空间了。这个时候用联合体就会节省很大的空间了进行代码展示 struct git_list {//共有的特征int kucun;double price;union s0{//杯子struct s1{char sheji[20];}mark;//书本struct s2{char zuozhe[30];char shuming[40];int yeshu;}book;//衬衫struct s3{int size;char color[10];}shirt;}thing; };我们把共有的特征放在结构体的开头把各自的特征各自特征组成的小结构体放在联合体中这样我们想调用那个商品的特征就直接从联合体里面调用了虽然联合体里面写了很多的特征但是它们都占一个空间相比于全部用结构体省了很多的空间。 练习我们用联合体再来重温一下判断大小端字节序进行代码展示码 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h union un {char c;int i; }s1; int main() {s1.i 1;if (s1.c 1)printf(小端字节);elseprintf(大端字节序);return 0; }结果运行图 联合体的大小的计算 前面咱们讲过——编译器只会给联合体中最大的成员分配足够的空间也就是联合体的大小至少是最大成员的大小。那么是不是就可以理解为联合体的大小就是最大成员的大小。NO!NON!,不可以。进行代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h union un {char arr[5];int i; }; int main() {printf(%zd\n,sizeof(union un));return 0; }char arr[5]占有5个字节int i占有4个字节按照咱们的猜测答案是5吗 结果运行图 看来我们的猜测是错误的。因为联合体的大小还有如下的规则这才是真正的大小 【1】联合体的大小至少是最大成员的大小 【2】当最大成员的大小不是对齐数的整数倍时就要对齐到对齐数的整数倍char arr[5] 的对齐数是 1int i 的对齐数4最大对齐数是 4.而最大成员 char arr[5]是5个字节不是最大对齐数4的整数倍就要对齐到8才是最大对齐数的整数倍。 枚举类型的声明 概述枚举顾名思义就是逐个列举的意思中文解释。把可能的值给一一列举出来。 比如我们现实生活中 1.一周有7天可以一一列举出来。 2.性别男 女 保密。 3.颜色的三原色红 蓝 绿枚举的关键字是enum ,它的结构与结构体类似进行代码展示。 enum tag {常量1 //注意枚举里面的每一个成员后面都是 ,结尾。常量2 最后一个成员的结尾什么也没有......常量n }var_list;枚举的结构和结构体类似但是它的成员和结构体的不同。我们知道结构体的成员都是变量但是枚举的成员都是常量而且这个常量还不像数字那样的常量我们先来一代码进行展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h enum sex {male,female,secret }; int main() {printf(%d\n, male);printf(%d\n, female);printf(%d\n, secret);return 0; }结果运行图 大家可以看出来枚举里面都是常量。不知道大家有没有感觉到枚举的这个成员常量和重命名很像进行代码展示 #define male 0 ; // 把0重新命名为male, 也就是说male0枚举的常量成员就可以类比重命名。 注意事项 1.创建枚举时编译器就已经为里面的常量成员分配好值了编译器会默认给第一个成员分配0后面的成员分配一次增1。2.枚举的成员是常量是不可以更改的。进行代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h enum sex {male,female,secret }; int main() {male 2;return 0; }结果运行图 枚举的成员时常量所以是不可以修改的。但是我们可以在创建枚举时进行初值的修改进行代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h enum sex {male6,female,secret }; int main() {printf(%d\n, male);printf(%d\n, female);printf(%d\n, secret);return 0; }结果运行图 我们可以在创建枚举时进行修改初值。后面成员也是一次增1。 枚举类型的优点 前面咱们讲过了枚举定义常量和重命名是一样的那么为什么还要用枚举呢这就要讲到枚举的优点了。 枚举的优点 1.增加代码的可读性和可维护性。2.和#define定义的标识符比较枚举有类型检查更加严谨。3.便于调试预处理阶段会删除 #define 定义的符号。4.使用方便一次可以定义多个常量。这比重命名方便多了重命名要命很多次5.枚举常量是遵循作用域规则的枚举声明在函数内只能在函数内使用。 枚举类型的使用 虽然枚举的成员是常量但是枚举也是自定义数据类型它也可以定义变量。枚举定义变量时赋初值只能赋值枚举类型的常量自产自销。进行代码展示 #define _CRT_SECURE_NO_WARNINGS 1 #include stdio.h enum sex {male6,female,secret }; int main() {enum sex peo male;printf(%d\n,peo);return 0; }结果运行图 那是否可以拿整数给枚举变量赋值呢在C语言中是可以的但是在C是不行的C的检查比较严格。 枚举类型的大小 我们讲过每个数据类型都有大小枚举也不例外。枚举的成员都是常量而且都是整型常量。所以枚举的大小就是整行int 的大小所以为4个字节。 直接记住枚举的大小就是整形大小——4个字节。结果运行图所示 彩蛋时刻 10月1日国庆快乐-毛主席语录https://www.bilibili.com/video/BV1Lm421M7XK/?spm_id_from333.337.search-card.all.clickvd_source7d0d6d43e38f977d947fffdf92c1dfad 每章一句趁年轻总要做点什么吧感谢你能看到这里点赞关注收藏转发是对我最大的鼓励咱们下期见
http://www.tj-hxxt.cn/news/217995.html

相关文章:

  • 成都网站营销推广公司扬州市建设局网站
  • 营销类网站如何优化济宁网页
  • 怎样在文章后做网站链接娄底seo
  • 网站服务器好北京微信网站建设报价单
  • 农产品的网站建设与维护论文网站建设教程流程图
  • 建站系统有哪些免费网站免费进入在线
  • 制作网站的平台哈尔滨营销型网站建设
  • 期末作业做网站的心得体会手机wap网站html源码
  • 自己买域名可以做网站吗三明 网站建设
  • 东营网站建设制作门户网站首页
  • 盐城专业做网站较好的公司疫苗最新官方消息
  • excel 表格 做的网站帮做网站
  • 中国建设银行官网站网点aso优化的主要内容
  • 昆明优化网站排名如何查询网站使用什么框架做的
  • 电子商务网站建设心得体会三亚手机台app
  • 青海高端网站建设多少钱济南电商网站建设
  • 网站页面设计python如何安装wordpress
  • 廊坊网站建设团队周至做网站
  • 外贸网站建设经验中信建设公司好进去吗
  • 网站改版建设方案乐清虹桥门户网
  • 品牌授权网站大宗商品现货交易平台排名
  • 化妆品企业网站建设的缺点站内seo怎么做
  • 门户网站有哪些局限性最新最好玩的网页游戏排行榜
  • 上海网站seo排名优化wordpress仅显示标题
  • asp.net网站开发框架h5模板免费下载
  • 国外对企业网站开发的研究找一个免费域名的网站
  • 手机网站表单页面制作网站开发工作进度表
  • 做动漫网站的心得体会网站违规词处罚做网站的
  • 购物车功能网站怎么做的房产信息网上自助查询系统
  • 源码可以做网站吗仪征建设局招投标网站