栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++学习 七、枚举类型,结构体

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++学习 七、枚举类型,结构体

C++学习 七、枚举,结构体

前言枚举类型

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(字符串数组每个元素都为’’):

student stu4 {};
赋值

可以把一个结构体变量赋给另一个同结构体变量:

stu4 = stu3;

即使某个结构体成员是数组,也能够被另一个结构体变量拷贝。

成员运算符

.是成员运算符,用于访问该结构体变量的成员变量:

std::cout << stu4.name;
成员函数

与C结构体不同,C++结构体除了成员变量,还能够定义成员函数,与类class相同。

结构体数组

结构体也可以用于数组类型:

student stus[10];
初始化

同时应用数组初始化 + 结构体初始化

student stuss[10] { {"Li Hua"}, 
					{"Li Lei"},
				  };
后记

本篇内容记录了C++枚举与结构体的使用。下篇开始讲函数。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/718816.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号