管理数组和字符串
1.1 什么是数组
数组有如下特点:
- 数组是一系列元素
- 数组中所有元素的类型都相同
- 这组元素形成一个完整的集合
1.1.1 声明和初始化静态数组
在C++中,数组声明遵循如下简单的语法:
1.1.2 数组中的数据是如何存储的
这个数组占用的内存空间包含5块,每块的大小都相同。块大小取决于数组存储的数据类型,这里时int,因此编译器为数据myNumbers预留的内存量为sizeof(int)) * 5。
1.1.3 访问存储在数组中的数据
要访问数组中的元素,可使用从零开始的索引。因此,存储在数据myNumbers中的第一个整数值为myNumbers[0],依此类推。
1.2 多维数组
1.2.1 声明和初始化多维数组
在C++中,要声明多维数组,可指定每维包含的元素数。因此,要声明一个int二维数组,可以如下:
int solarPanels [2][3];
如果要初始化相应的int数组,如下:
int solarPanels [2][3] = {
{0, 1, 2}, {3, 4, 5}};
虽然C++能模拟多维数组,但是存储数组的内存是一维的。
1.2.2 访问多维数组中的元素
可将多维数组视为由数组组成的数组。
在需要访问数组宏的int时,可使用第一个下标指出该int所属的数组,并使用第二个下标指出该int。
1.3 动态数组
C++提供了std::vector,这是一种方便而易于使用的动态数组。
1.4 C++字符串:使用std::string
不同于字符数组,std::string是动态的,在需要存储更多数据时其容量将增大。
使用表达式、语句和运算符
2.1 语句
在C++中,所有语句都以分号(;)结尾,分号界定了语句的边界。
2.2 复合语句(语句块)
可使用花括号({})将多条语句组合在一起,以创建复合语句(语句块)。
2.3 使用运算符
- 赋值运算符(=)
- 加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)和求模运算符(%)
- 递增运算符(++)和递减运算符(--)
- 相等运算符(==)和不等运算符(!=)
- 关系运算符
- 逻辑运算NOT、AND、OR和XOR
- 按位运算符NOT(~)、AND(&)、OR(|)和XOR(^)
逻辑运算符和按位运算符之间的差别在于,按位运算符返回的并非布尔值,而是对位操作数对应位执行指定运算的结果。C++能够执行按位NOT, OR, AND和XOR运算,分别使用~将每位取反、使用|对相应位执行OR运算、使用&对相应位执行AND运算、使用^对相应位执行XOR运算。其中后三个运算符对变量与选择的数字(通常是位掩码)执行相应的运算。
- 按位右移运算符(>>)和左移运算符(<<)
移位运算符将整个位序列向左或向右移动,其用途之一是将数据乘以或除以。
左移一位表示将变量乘以2,右移一位表示将变量除以2。
如:输入数字为16,其二进制表示为1000,右移一位结果就为0100,结果为8。
- 复合赋值运算法
复合赋值运算符将运算结果赋给左边的操作数。
- 运算符优先级