- 前言
- 枚举类型
- enum定义
- 枚举常量设定
- 枚举变量
- 声明
- 初始化
- 运算符
- 枚举类型与整形
- 无名枚举类型
- 结构体
- struct定义
- 结构体变量
- 声明
- 初始化
- 赋值
- 成员运算符
- 成员函数
- 结构体数组
- 初始化
- 后记
本片继续C++学习,枚举与结构体。
枚举类型C++提供了const和enum两种创建符号常量的方法,后者就是枚举类型。
enum定义enum [枚举类型名] {符号常量名}
,直接看使用方法:
enum color{red, green, blue};
上面的语句做了两件事:
- 创造了枚举类型color;
- 使red,green,blue成为符号常量(枚举常量),值依次为0,1,2;
在不给定数值的情况下,枚举常量的值从0开始加1递增。
枚举常量设定可以使用赋值运算符设置枚举常量的值:
enum color {red=0, green=1, blue=2};
可以指定一部分枚举常量的值,后面没有被指定的枚举常量比前面的枚举常量大1:
enum color {red, green=1, blue}; // red=0, green=1, blue=2
枚举变量
声明
构建枚举类型后,可以声明枚举变量:
color myColor;
初始化
也可以初始化枚举变量:
color myColor = blue;
color myColorr {blue}; // equal
运算符
枚举类型只定义了赋值运算符,没有算术运算符:
myColor = red;
// myColor = red + 1; // 报错,枚举没有加减法
枚举类型与整形
虽然枚举常量是整形,但不能把整形直接赋给枚举变量,需要强制类型转换:
// myColor = 1; // 报错,不能把整形赋给枚举类型
myColor = color(1);
但是可以把枚举量赋给整形:
int a = myColor;
注意:下面这个表达式比较特殊
color c = red + green; // 报错
上面说了枚举类型没有算术运算符,但这里red + blue
被转换为两个整形相加;报错原因是得到了一个整形,不能赋给枚举变量。
枚举类型可以省略名字,这样就只能使用枚举常量,不能定义枚举变量:
enum {red, green, blue};
结构体
如果要在一种数据类型中存储多种数据类型的信息,C语言提供了结构体,C++除了继承结构体外,更偏向使用类。但这里还是要先记录C++结构体struct。
struct定义struct [结构体名] {结构体成员};
,直接看使用方法:
struct student {
char name[20];
int age;
};
结构体变量
声明
通过结构体名声明结构体变量:
student stu1;
可以在定义结构体的同时创建结构体变量,但最好不要使用(程序将不易阅读):
struct A {
int member;
} a;
初始化
可以使用大括号初始化结构体变量:
student stu2 = {"Li Hua", 19};
C++11也可以使用列表初始化结构体变量:
student stu3 {"Li Lei"};
初始化值的位置要与成员变量的顺序一一对应。
注:可以省略初始化的值,这样计算机会把没有初始化值的成员都设为0(字符串数组每个元素都为’\0’):
student stu4 {};
赋值
可以把一个结构体变量赋给另一个同结构体变量:
stu4 = stu3;
即使某个结构体成员是数组,也能够被另一个结构体变量拷贝。
成员运算符.
是成员运算符,用于访问该结构体变量的成员变量:
std::cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?