C++ Primer Plus 第四章 复合类型 学习笔记 (2)

赋值 —— 不能将一个数组赋给另一个数组,但可以将一个string对象赋另一个string对象。

char char01[20]; // 创建一个空列表 char char02[20] = "Jason"; // 创建一个初始化数组 string str01; // 创建一个空的string对象 string str02 = "Soler Ho"; // 创建一个初始化的string对象 char01 = char01; // 不可执行,一个数组不能赋值给另一个数组 str01 = str02; // 可执行,可将一个string对象赋给另一个string对象。 3.2 复制、拼接和附加

string类简化字符串合并操作。

利用运算符 + 将两个string对象合并起来。

string str01; string str02 = "Soler Ho"; string = str01 + str02;

可以使用运算符 += 将字符串附加到string对象的末尾。

string str01; string str02 = "Soler Ho"; str01 += str02; 4. 结构简介

结构是用户定义的类型,而结构声明定义了类型的数据属性。

定义类型之后,就直接创建类型的变量。

结构比数组灵活,同一个结构中可以存储多种类型的数据。

4.1 创建结构的步骤:

定义结构描述 —— 描述并标记能够存储在结构中的各种数据类型

按描述创建结构变量(结构数据对象)。

4.2 结构的定义: struct(关键字) 类型名(标记成为新类型的名称) { 结构成员1; 结构成员2; 结构成员3; };//(结束结构声明)

对于结构中的成员,使用成员运算符(.)来进行访问各个成员。

4.3 结构的初始化(C++11)

与数组一样,列表的初始化用于结构,且等号(=)可有可无。

infor Soler_infor {"Soler HO",55,168}; // 在C++11中,= 号可以省略

如果大括号内未包含任何东西,各个成员都将设置为零。

infor Soler_infor {};

不允许缩窄转换

✅ 小Tips:C++允许在声明结构变量时省略关键字struct。

4.4 成员赋值

成员赋值(memberwise assignment):可以使用赋值运算符(=)将结构赋另一个同类型的结构。这样结构中的每个成员都将被设置为另一个结构中相应成员的值。即使成员是数组。这种方式就是成员赋值。

5. 共用体

共用体(union),也叫做联合(union)。一种 构造数据类型

关键字:union

联合(union):将不同类型的数据在一起共同占用同一段内存

存储不同的数据类型,但只能同时存储其中的一种类型

示例:

union sample { int int_val; long long_val; double double_val; }; 5.1 结构体和共用体的区别

结构可以同时存储int、long和double。

共用体只能存储int、long和double三种。

含义不同。

关键字不同

结构体:struct

共用体:union

5.2 共用体的用途:

当数据使用两种格式或更多格式(但不会同时使用)时,可以节省空间。

嵌入式系统编程(如控制烤箱、MP3播放器),内存非常宝贵。

常用于操作系统数据结构或硬件数据结构。

5.3 匿名共用体

匿名共用体(anonymous union)没有名称,其成员将成为位于相同地址处的变量。

6. 枚举

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

使用enum的语法格式与结构的使用类似。

enum color{red,orange,yellow,green,blue,voilet}; 6.1 设置枚举量的值 enum week{Monday = 1,Tuesday = 2;Wednesday = 3;Thursday = 4};

指定的值必须是整数。也可以只显示定义其中一些枚举量的值。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysdjw.html