您当前的位置: 首页 >  c++

RuiH.AI

暂无认证

  • 0浏览

    0关注

    274博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

RuiH.AI 发布时间:2022-01-30 22:47:16 ,浏览量:0

C++学习 七、枚举,结构体
  • 前言
  • 枚举类型
    • enum定义
    • 枚举常量设定
    • 枚举变量
      • 声明
      • 初始化
      • 运算符
      • 枚举类型与整形
    • 无名枚举类型
  • 结构体
    • struct定义
    • 结构体变量
      • 声明
      • 初始化
      • 赋值
      • 成员运算符
      • 成员函数
    • 结构体数组
      • 初始化
  • 后记

前言

本片继续C++学习,枚举与结构体。

枚举类型

C++提供了const和enum两种创建符号常量的方法,后者就是枚举类型。

enum定义

enum [枚举类型名] {符号常量名},直接看使用方法:

enum color{red, green, blue};

上面的语句做了两件事:

  1. 创造了枚举类型color;
  2. 使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             
关注
打赏
1658651101
查看更多评论
1.3984s