一、结构

结构是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. Haar-like特征

    参考文献: [1]Viola P, Jones M. Rapid object detection using a boosted cascade of simple features[C]//Com ...

  2. jacon

    com的线程回收不由java垃圾回收器进行处理,因此,每new一次jacob提供的类就要分配一定大小的内存给该操作,new出来的这个com对象在使用结束之后产生的垃圾java是无法回收的,new出来的 ...

  3. app接口测试-bug分类

    前段时间在测试一个项目,任务是测试app的API.总结下遇到的问题类型: 1 通过app提交数据,隐形数据有误.(主要通过验证数据库) 比如用户通过app输入工单提交.接口数据中,用户输入的信息都正确 ...

  4. C++中的文件读取结束

    while(cin>>N>>M) { } ok???

  5. 类似qq的左滑菜单栏简单实现

    代码托管到了Github https://github.com/cyuanyang/YYSlideView 主演实现代码: 1.滑动的viewController的初始化主要view -(instan ...

  6. UML学习---交互

    在系统中,对象都不是孤立存在的,它们相互之间通过传递消息进行交互.交互是一种行为,由语境中的一组对象为达到某一目的而交换的一组消息构成.

  7. js 表单验证方法二

    function ckReight () { var pass = true; var new = $("#new"); if( new.find('input[name=name ...

  8. 完美解决scrollView 截屏图片模糊

    UIGraphicsBeginImageContext   首先说明一下UIGraphicsBeginImageContextWithOptions 和UIGraphicsBeginImageCont ...

  9. software_testing_work3_question1

    package com.Phantom; import java.io.IOException; import java.util.Scanner; public class Work3_1 { /* ...

  10. shell脚本入门及基本元素

    命令和参数 #!/bin/sh 其中#!用来告诉系统它后面的参数是用来执行该文件的程序,必须放在脚本的首行,不然会在执行脚 本 的时候报错.当一个文件开头的两个字符是#!时,内核会扫描其它的部分看是否 ...