•结构是用户定义的类型,而结构的声明定义了这种类型的数据属性。

  一.关键字struct声明:   定义了一种新类型

    struct inflatable{

      char name[20];//结构成员

      float volume;//结构成员

      double price;//结构成员

    } 

  定义结构之后,便可以创建这种类型的变量。如  inflatable a; inflatable b;inflatable c;由于a的类型为inflatable,因此可以使用成员运算符(.),即a.volume (访问类成员,直接用.)

         结构数组:

    inflatable结构包含一个数组,

       E  G:inflatable gifts[100];//若创建包含100个inflatable结构的数组.

          cin>>gift[0].volume;

    初始化:

       inflatable guests[2]={

          {"LELE",0.5,21.99},

          {"HAHA",2000,565.99}

       };

    二.共用体

    共用体是一种数据格式,它能够存储不同的数据类型,但只能同时存储其中的一种类型。结构可以同时存储int long double,共用体只能存储int,long,double。共用体的句法和结构相似,但含义不同。 one4all是创建的类型

    声明:  union one4all{ 

          int int_val;

          long long_val;

          double double_val;

        }

    可以使用one4all变量来存储int ,long 或double,条件是在不同的时间进行:

    one4all pail;

    pail.int_val=15;

    cout<<pail.int_val;

    pail.double_val=1.38

    cout<<pail.double_val;

    pail有时可以是int变量,有时可以是double变量。成员名称标识了变量的容量。由于共用体每次只能存储一个值,因此它必须有足够的空间来存储最大的成员,所以,共用体的长度为其最大成员的长度。

    共用体用途之一:当数据项不用同时使用两种或者更多的时候,可节省空间。假设管理一个小商品目录,其中有一些商品的ID为整数,而另一些的ID为字符串。

struct widget{
char brand[];
int type;
union id{
long id_num;
char id_char[];
}name;
};
widget prize;
if(prize.type==){
cin>>prize.name.id_num;
}else
cin>>prize.name.id_char;

    匿名共用体:没有名称,其成员将成为位于相同地址处的变量。

  struct widget{
char brand[];
int type;
union {
long id_num;
char id_char[];
};
};
widget prize;
if(prize.type==){
cin>>prize.id_num
}else
cin>>prize.id_char;

    三.枚举 创建符号常量,可代替const,允许定义新类型。

    enum eg{red,orange,yellow,green,blue,violet,indigo};

    •让eg成为新类型的名称:eg被成为枚举,就如struct变量被称为就够一样。

    •将red,orange,yellow等作为符号常量,对应值为0~6,这些常量被成为枚举量。

    也可以用枚举名来声明这种类型的变量

    eg band;

    band=blue;

    band=2000;//错误的,2000不是枚举数,2000不是枚举变量的值。

    

C++复合类型(结构,共用体,枚举)的更多相关文章

  1. C++ 共用体 枚举类型 所有

    一.共用体类型 1.共用体的概念. 有时候需要将几种不同类型的变量存放到同一段内存单元中.例如有三个变量,他们的字节数不同,但是都从同一个地址开始存放.也就是用了覆盖技术,几个变量互相覆盖.这种使几个 ...

  2. C语言基础 (11) 结构体 ,共用体 枚举 typedef

    1 课堂回顾 作用域与生命周期 2 static 局部变量 2 打字游戏 3 内存分区代码分析 4 结构体基本操作 (复合类型[自定义类型 #include <stdio.h> #incl ...

  3. 瘋子C语言笔记(结构体/共用体/枚举篇)

    (一)结构体类型 1.简介: 例: struct date { int month; int day; int year; }; struct student { int num; char name ...

  4. 5、数组&字符串&结构体&共用体&枚举

    程序中内存从哪里来 三种内存来源:栈(stack).堆(heap).数据区(.date): 栈(stack) 运行自动分配.自动回收,不需要程序员手工干预: 栈内存可以反复使用: 栈反复使用后,程序不 ...

  5. 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符

    [源码下载] 不可或缺 Windows Native (8) - C 语言: 结构体,共用体,枚举,类型定义符 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 结构体 ...

  6. 07.C语言:结构体、共用体、枚举

    一.结构体 是一种复合的数据类型,由多个不同类型的数据(为结构体的成员)组成的集合. 在c语言中没有给出结构体这种类型具体的形式(名称),但是给出类定义该结构体类型的方法(格式). 在使用结构体类型时 ...

  7. c的详细学习(10)结构体与共用体的学习(二)

    在c语言中,结构体数据类型与共用体数据类型都属于构造类型.共用体与结构体数据类型在定义上十分相似,但它们在存储空间的占用分配上有本质的区别.结构体变量是各种类型数据的集合,各成员占据不同的存储空间,而 ...

  8. C语言结构体和共用体_07

    概述 定义结构体类型变量的方法 结构体变量的引用 结构体变量的初始化 结构体数组 指向结构体类型数据的指针 用指针处理链表 共用体 枚举类型 用 typedef定义类型  概述 定义一个结构体的一般形 ...

  9. C/C++(共用体与枚举)

    共用(Union)与枚举(Enum) 共同体 c语言中,不同的成员使用共同的存储区域的数据结构类型称为共用体.(共用,联合体),共用体在定义,说明,适用形式上与结构体相似.两者本质上的不同在于使用内存 ...

随机推荐

  1. C语言输入输出函数总结

    常见函数: FILE *p char ch char buf[max] fopen("filename","ab")//打开名为filename的文件并返回一个 ...

  2. iOS之利用runtime,避免可变数组和可变字典为nil或者数组越界导致的崩溃

    NSArray.NSMutableArray.NSDictionary.NSMutableDictionary.是我们的在iOS开发中非常常用的类.当然,在享受这些类的便利的同时,它们也给我们带来一些 ...

  3. 微信小程序之数据传递

    本文主要介绍,页面跳转间的数据传递.传递的数据类型主要有1,基本数据类型:2,对象:3,数组集合: 先告诉你,本质上都是string类型传递.但是对于对象和数组集合的传递需要小小的处理一下传递时的数据 ...

  4. Python基础知识--Slice(切片)和Comprehensions(生成式)

    最近在Youtube的Python视频教程上学习Python相关的基础知识,视频由Corey Schafer制作,讲得十分简单明了,英文发音也比较清晰,几乎都能听懂,是一个不错的Python入门学习的 ...

  5. ssh登录等待时间超时问题的解决

    最近使用ssh登录服务器时,发现许多服务器会报告等待时间超时的错误,通过网上查找发现是由于ssh中的配置中开启了DNS反查的功能,导致在反查过程中消耗了很长的时间,现将解决方法总结如下: 使用root ...

  6. WARNING: IPv4 forwarding is disabled. Networking will not work.

    1:Test environment [root@docker-node1 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Cor ...

  7. jQuery DOM/属性/CSS操作

    jQuery DOM 操作 创建元素 只需要把DOM字符串传入$方法即可返回一个 jQuery 对象 var obj = $('<div class="test">&l ...

  8. 嵌入式GPIO接口及操作(二)

    目标:C语言实现点亮LED灯 首先是main函数,并不特殊,它是被系统调用来执行的,main函数结束后要返回调用main函数的地址处,那么裸机程序,没有操作系统做这些工作,就要自己写调用main函数的 ...

  9. Python学习手册之捕获组和特殊匹配字符串

    在上一篇文章中,我们介绍了 Python 的字符类和对元字符进行了深入讲解,现在我们介绍 Python 的捕获组和特殊匹配字符串.查看上一篇文章请点击:https://www.cnblogs.com/ ...

  10. docker swarm的应用----docker集群的构建

    一.docker安装 这里我们安装docker-ce 的18.03版本 yum    -y remove docker  删除原有版本 #安装依赖包 [root@Docker ~]# yum -y i ...