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

深圳福田网站建设专业公司住房和城乡建设部网站北京

深圳福田网站建设专业公司,住房和城乡建设部网站北京,郑州网络推广团队,杭州网络设计行业公司1.联合体类型 1.1:联合体类型变量的创建 与结构体类型一样,联合体类型 (关键字:union) 也是由⼀个或者多个成员变量构成,这些成员变量既可以是不同的类型,也可以是相同的类型。但是编译器只为最⼤的成员变量分配⾜够的内存空间。联合体的特…

1.联合体类型

1.1:联合体类型变量的创建

与结构体类型一样,联合体类型 (关键字:union) 也是由⼀个或者多个成员变量构成,这些成员变量既可以是不同的类型,也可以是相同的类型。但是编译器只为最⼤的成员变量分配⾜够的内存空间。联合体的特点是所有成员变量共⽤同⼀块内存空间。所以联合体也叫共用体。而结构体中每个成员变量都有自己独立的空间。

#include<stdio.h>
union Un 
{char c;//1个字节int i;//4个字节
};int main()
{union Un u;printf("%zd\n", sizeof(union Un));//4  为char类型的c分配4个字节的空间printf("%p\n", &u);//008FFA9Cprintf("%p\n", &(u.c));//008FFA9Cprintf("%p\n", &(u.i));//008FFA9C//联合体类型变量u与成员c、成员i的地址相同,由此可见,联合体中的成员是共用同一块内存空间的return 0;
}

在这里插入图片描述

1.2:给联合体中一个成员变量赋值时,其他成员变量的值也会发生变化。

在这里插入图片描述

1.3:相同成员的结构体类型和联合体类型的对比

在这里插入图片描述

1.4:联合体类型变量的大小

在这里插入图片描述

#include <stdio.h>
union Un1
{//当成员变量是数组时,对齐数 = 数组元素的大小与编译器默认的对齐数中的较小值char c[5];//数组元素占1个字节,编译器默认的对齐数是8,则c的对齐数是1int i;//i占4个字节,编译器默认的对齐数是8,则i的对齐数是4//所有成员中,最大的对齐数是4,则该联合体类型的大小必须是4的倍数
};
union Un2
{//当成员变量是数组时,对齐数 =数组元素的大小与编译器默认的对齐数中的较小值short c[7];//数组元素占2个字节,编译器默认的对齐数是8,则c的对齐数是2int i;//i占4个字节,编译器默认的对齐数是8,则i的对齐数是4//所有成员中,最大的对齐数是4,则该联合体类型的大小必须是4的倍数
};
int main()
{printf("%d\n", sizeof(union Un1));//8printf("%d\n", sizeof(union Un2));//16return 0;
}

1.5:结构体类型与联合体类型的对比

联合体类型比结构体类型更节省空间,但它也有缺陷: 由于所有成员变量共用一块内存空间,当每个成员变量需要单独使用时,应该使用结构体类型,不能使用联合体类型。
在这里插入图片描述

1.6:利用联合体类型,写一个程序,判断当前机器是大端字节序存储还是小端字节序存储。

int check_sys()
{union   //匿名联合体类型,易知该类型占4个字节{int i;char c;}un;un.i = 1;//1的补码00000000000000000000000000000001//1的补码的16进制表示形式:0x00000001return un.c;//返回1是⼩端,返回0是⼤端
}

在这里插入图片描述

2.枚举类型

2.1:枚举类型变量的创建

枚举的关键字enum
在这里插入图片描述

enum Sex//性别
{//下面是枚举类型变量的可能取值,这些值都是常量。常量的值一旦确定后就无法修改了//如果不给这些常量赋初始值的话,默认是从0开始,向下每个常量的取值逐渐加1MALE,//男                            MALE的默认值为0,FEMALE,//女                          FEMALE的默认值为1,SECRET//保密  最后一个取值不加逗号     SECRET的默认值为2//MALE、FEMALE、SECRET的类型是enum Sex
};int main()
{enum Sex a = MALE;//根据枚举类型enum Sex创建变量a,a的取值是男printf("%d\n", MALE);//0printf("%d\n", FEMALE);//1printf("%d\n", SECRET);//2//MALE=4;   error,MALE是常量,它的值是0,不能被修改 return 0;
}
enum Sex//性别
{MALE=2, //将常量MALE的初始值赋为2                         FEMALE,//则常量FEMALE的值就是3 (2+1)                       SECRET//则常量SECRET的值就是4 (3+1)   
};int main()
{printf("%d\n", MALE);//2printf("%d\n", FEMALE);//3printf("%d\n", SECRET);//4return 0;
}
enum Sex//性别
{MALE=3, //将常量MALE的初始值赋为3                       FEMALE=4,//将常量FEMALE的初始值赋为4                      SECRET//则常量SECRET的值就是5 (4+1)   
};int main()
{printf("%d\n", MALE);//3printf("%d\n", FEMALE);//4printf("%d\n", SECRET);//5return 0;
}
enum Sex//性别
{MALE=3, //将常量MALE的初始值赋为3                      FEMALE=5,//将常量FEMALE的初始值赋为5                     SECRET=7//将常量SECRET的初始值赋为7
};int main()
{printf("%d\n", MALE);//3printf("%d\n", FEMALE);//5printf("%d\n", SECRET);//7return 0;
}

2.2:枚举类型需要注意的地方

可以将整数赋值给枚举类型的变量吗?在C语⾔中是可以的,但是在C++是不⾏的,因为C++的类型检查⽐较严格。

enum Sex//性别
{MALE,FEMALE,SECRET
};int main()
{enum Sex a= 0;//因为MALE的值为0,将MALE赋值为枚举类型的变量a//上面这句代码在C语言中不会报错,但在C++中会报错。因为C++的类型检查比较严格,C++中认为赋值符号右边的0是int类型,而a是enum Sex类型,所以不能把0赋值给a//可以把上面这行代码替换成enum Sex a= MALE;这样无论是C语言还是C++中都不会报错return 0;
}

文章转载自:

http://ady2aemT.wqmyh.cn
http://yWNrKXM8.wqmyh.cn
http://bIcWLvSO.wqmyh.cn
http://p9VPb2pC.wqmyh.cn
http://r8Lp4X4C.wqmyh.cn
http://eLaqzaSi.wqmyh.cn
http://jrItTJZS.wqmyh.cn
http://kjmyF8nQ.wqmyh.cn
http://thXgPglV.wqmyh.cn
http://kLvthaOl.wqmyh.cn
http://jQtdVToD.wqmyh.cn
http://Fb4GxAWS.wqmyh.cn
http://HF79GDYQ.wqmyh.cn
http://1MkfA4ri.wqmyh.cn
http://2LzRJBuB.wqmyh.cn
http://hegRU3zM.wqmyh.cn
http://HrXMb7xz.wqmyh.cn
http://gICXuSs9.wqmyh.cn
http://OT8isrkj.wqmyh.cn
http://GSJuwCfy.wqmyh.cn
http://aOJCmtDy.wqmyh.cn
http://vHnm5XbM.wqmyh.cn
http://wcWMSzJX.wqmyh.cn
http://z6C6YRcC.wqmyh.cn
http://6CRBkVk6.wqmyh.cn
http://zge4siOf.wqmyh.cn
http://XZWTJTce.wqmyh.cn
http://G1mnOCEY.wqmyh.cn
http://E2MwuhNf.wqmyh.cn
http://dvOtDiQV.wqmyh.cn
http://www.dtcms.com/wzjs/640796.html

相关文章:

  • 百度的官方网站网站美工主要工作是什么
  • 免费注册qq号网站erp企业管理系统平台
  • 网站建设怎么购买空间建设银行网站怎么修改手机号码吗
  • 怎么做传奇网站图做下载网站用什么程序好
  • 免费网站建立郑州汉狮做网站好不
  • wordpress怎么更换站点石材公司网站
  • 美团网站建设规划书提高网站公信力 单仁
  • cms网站是什么企业网站备案要多少钱
  • 北京网页设计公司网站网站建设哪个公司好知乎
  • 1 网站建设的目标是什么app开发一个多少钱
  • 河南做网站最好的公司wordpress xmmpp
  • 网站建设项目策划书深圳网络服务有限公司
  • 网站产品的详情页怎么做中国卫生人才网
  • 企业只有建立了自己的网站网络推广发展
  • 深圳住建设局网站网站修改报价
  • 环评怎么在网站做公示做网站能不备案么
  • 网站开发合同审核要点html制作手机网站
  • 免费做文字图网站平面设计图数字标识
  • 网站开发工资多少稳定么wordpress js失效
  • 网站标题应怎设置wordpress+歌曲列表
  • 做韩国网站有哪些网站建设费用不用摊销
  • 网站设计与制作说明wordpress 用户组
  • 网站建设需要域名吗?微信小程序开发需要什么
  • 城阳 网站建设网站团队介绍
  • 公司网站建设收费站酷网网址
  • 网站运营岗位介绍自建平台
  • 西安专业做淘宝网站的公司做网站免费服务器哪家好
  • 长沙建设公司网站网站怎么免费做推广
  • 洛阳网站设计展厅宣传片
  • 查看一个网站的源代码做评价电脑可以做网站吗