一、结构

结构是C++OOP的基石。学习有关结构的知识僵尸我们离C++的核心OOP更近。

结构是用户定义的类型,同一个结构可以存储多种类型数据,这使得将一个事物的不同属性构成一个对象成为了可能。另外C++结构除了成员变量之外,还可以有成员函数。但一般不这样用,而是在类中定义。

结构的声明:

struct people{

char name[20];

float volume;

double price;

};

结构的初始化: people jason = { “jason”,1.88,29.99};

二、共用体

共用体(union)是一种数据格式,它能够存储不能的数据类型,但在同一时间只能存储一种数据类型。

union id

{

long id_num;

char id_char[20];

};

如上声明代码,编号id有的是整数,而有的是字符串,这是我们用共用体就能解决编号类型不同的问题。

拓展:共用体常用语节省内存。但当前系统的内存都是GB级的甚至是TB级的,好像没有必要为此节省内存,但并非所有的C++程序都是为这样的系统编写的。C++还用于嵌入式开发,比如控制烤箱、MP3播放器等等。对于这些应用来说,内存往往是非常珍贵的。另外,公用体常用语操作系统数据结构或硬件数据结构。

三、枚举

C++的enum工具提供了另一种创建符号常量的方式,这种方式可以代替const。它还允许定义新类型,但必须按严格的限定进行。

enum color { read,orang,yellow,green,blue,violet,indigo,ultraviolet};其中值分别为0-7。

枚举只定义了赋值运算符。可以将枚举类型转为整形,但可以将整形强制类型转换为枚举。如果要赋值,还要看是否超过枚举(color)的边界,如果赋值超过边界则不会出错,但这样做无意义。

拓展:枚举的规则相当严格。枚举更常用来定义相关的符号常量,而不是新的类型。例如,可以使用枚举来定义switch语句中使用的符号常量。如果只打算使用常量,这可以省略枚举类型的名称,格式如下:

enum { read,orang,yellow,green,blue,violet,indigo,ultraviolet};

C++结构、共用体、枚举的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

  7. __c语言__结构体、共用体、枚举__笔记

    2017-09-16 21:14:09 结构体,共用体,枚举 1.结构体 把不同的类型整合成一个有机的整体,以便于引用,这个类型就叫做结构体 1)结构体变量的定义方式(3种)和引用成员变量: 定义一个 ...

  8. C++复合类型(结构,共用体,枚举)

    •结构是用户定义的类型,而结构的声明定义了这种类型的数据属性. 一.关键字struct声明:   定义了一种新类型 struct inflatable{ char name[20];//结构成员 fl ...

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

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

随机推荐

  1. 学习中的错误——ubuntu 14.04 LTS 启动eclipse报错

    在ubuntu中启动eclipse报错:(Eclipse:15978): GLib-GIO-CRITICAL **: g_dbus_connection_get_unique_name: assert ...

  2. shell 简单计算脚本

  3. Android 数据库管理— — —更新数据

    <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=" ...

  4. Python学习路程CMDB

    本节内容 浅谈ITIL CMDB介绍 Django自定义用户认证 Restful 规范 资产管理功能开发 浅谈ITIL TIL即IT基础架构库(Information Technology Infra ...

  5. #include <vector>用法之我见

    vector是一种顺序容器,事实上和数组差不多,但它比数组更优越.一般来说数组不能动态拓展,(何为动态拓展,即是说如果你知道你要存的数据的个数,你定义的存储数据的数组大小也就决定了,但是若你事先不知道 ...

  6. SQLSERVER2008 不能用IP连接数据库问题

    本机安装的数据库只能用电脑名+"\"+实例名来访问,用“.”.“(local)”.“localhost”呀都不能访问.然后在网上挖资料呀,挖呀挖呀,终于挖到了解决办法. 1.不能用 ...

  7. 关于学习C++编程语言对中国软件发展的的一些思考!

    从2000年UCanCode E-Form++ 图形可视化源码库2.0在国外开始销售以来,弹指一挥间已经快14年了.这14年里见惯了各种新技术的不断涌现.也见惯了各种科技公司的不断出现和消亡,仔细想来 ...

  8. Java输入一行数据并转存到数组中

    直接看下面的代码吧!主要是split和foreach的使用 import java.io.*; import java.util.*; public class Main{ public static ...

  9. android view : 动画

    view中除了必要的移动之外,也可以使用动画来完善视觉效果.android中的动画在2.3之前只有帧动画和补间动画.3.0之后就加入了属性动画.其实说到动画是什么?就是一个连续的view的集合.帧动画 ...

  10. Loadrunner 脚本错误问题汇总(非原创,部分转自互联网)

    在运行脚本回放过程中,有时会出现错误,这在实际测试中是不可避免的,毕竟自动录制生成的脚本难免会有问题,需要运行脚本进行验证,把问题都解决后才加入到场景中进行负载测试.下面结合常用的协议(如Web.We ...