《C++ Primer Plus》第4章复合类型

文章目录

数组

数组是一种数据格式,能够存储多个同类型的值。要创建数组,可使用声明语句,数组声明要指出:存储在每个元素中的值的类型、数组名、数组中的元素数。数组声明能够使用一个声明创建大量的变量,然后便可以用索引来标识和访问各个元素。

typename arrayName[arraySize];

short months[12];

数组的初始化规则:只有在定义数组时才能使用初始化,可以使用下标分别给数组中的元素赋值。

字符串

字符串常量(使用双引号)不能与字符常量(使用单引号)互换。'S'是83的另一种写法,而"S"表示的是两个字符(字符S和\0)

sizeof运算符指出整个数组的长度,strlen()函数返回的是存储在数组中的字符串的长度。

getline()函数读取整行,使用通过回车键输入的换行符来确定输入结尾。调用这种方法,使用cin.getline()。该函数有两个参数,第一个参数是用来存储输入行的数组的名称,第二个参数是要读取的字符数。如cin.get(name,20);getline()函数每次读取一行,通过换行符来确定符尾,但不保存换行符,而是在存储字符串时,用空字符来替换换行符。get()方法不再读取并丢弃换行符,而是将其留在队列中。get()会使输入更仔细,通过查看下一个输入字符,如果是换行符就说明读取了整行,否则该行还有其他的输入。getline()使用更加简单,get()使得检查错误更简单。

string类

要使用string类,必须在程序中包含头文件string,string类位于名称空间std中,要提供一条using编译指令。可以使用运算符+将两个string对象合并起来。使用字符数组会存在目标数组过小无法存储指定信息的危险,但是string类具有自动调整大小的功能。

结构

同一个结构可以存储多种类型的数据。外部声明可以被其后面的任何函数使用,而内部声明只能被该声明所属的函数使用。通常使用外部声明,这样所有的函数都可以使用这种类型的结构。

cpp 复制代码
struct inflatable
{
   char name[20];
   float volume;
   double prince;
};

共用体

能够存储不同的数据类型,但只能同时存储其中的一种类型。由于共用体每次只能存储一个值,因此它必须有足够的空间来存储最大的成员,所以共用体的长度为其最大成员的长度。共用体的用途之一是当数据像是两种或更多种格式(但不会同时使用)可节省空间。

枚举

enum工具提供一种创建符号常量的方式,这种方式可以代替const。
enum spectrum {red, yellow, green, blue,violet};

相关推荐
John_ToDebug5 小时前
浏览器扩展延迟加载优化实战:如何让浏览器启动速度提升50%
c++·chrome·windows
是娇娇公主~5 小时前
C++ 中 std::deque 的原理?它内部是如何实现的?
开发语言·c++·stl
SuperEugene6 小时前
Axios 接口请求规范实战:请求参数 / 响应处理 / 异常兜底,避坑中后台 API 调用混乱|API 与异步请求规范篇
开发语言·前端·javascript·vue.js·前端框架·axios
xuxie997 小时前
N11 ARM-irq
java·开发语言
wefly20177 小时前
从使用到原理,深度解析m3u8live.cn—— 基于 HLS.js 的 M3U8 在线播放器实现
java·开发语言·前端·javascript·ecmascript·php·m3u8
luanma1509808 小时前
PHP vs C++:编程语言终极对决
开发语言·c++·php
寂静or沉默8 小时前
2026最新Java岗位从P5-P7的成长面试进阶资源分享!
java·开发语言·面试
csdn_aspnet8 小时前
C/C++ 两个凸多边形之间的切线(Tangents between two Convex Polygons)
c语言·c++·算法
kyriewen118 小时前
给浏览器画个圈:CSS contain 如何让页面从“卡成PPT”变“丝滑如德芙”
开发语言·前端·javascript·css·chrome·typescript·ecmascript
娇娇yyyyyy9 小时前
QT编程(18): Qt QItemSelectionModel介绍
开发语言·qt