声明:本文整理自《C++ Primer Plus》
01 数组
int yam[3];
sizeof yams,得到整个数组中的字节数,12
sizeof yams[1],得到的是元素的长度,4 bytes
02 字符串
将字符数组初始化为字符串的方法:用双引号将字符串括起来。(称为字符串常量)
char bird[11]="C++C++";//隐式的包含结尾空字符
通过键盘输入,将字符串读入到char数组时,自动加上结尾的空字符。
“S”不是字符常量,它表示两个字符(S和\0),"S"是字符串所在的内存地址
sizeof运算符指出整个数组的长度,strlen()返回的是存储在数组中的字符串的长度,不是数组本身的长度。strlen只计算可见的字符,不包括空字符。
03 字符串输入
cin使用空白(空格、制表符和换行符)来确定字符串的结束位置,cin在获取字符数组时只读取一个单词。
- 面向行的输入getline()
cin.getline(name,20);
第一个参数是数组的名字,第二个参数是要读取的字符数。20代表最多读取19个字符,剩下的用于存储自动添加的空字符。
- 面向行的输入get()
使用不带任何参数的cin.get()调用读取下一个字符,还可拼接cin.get(name,20).get();
使用get()时检查停止读取的原因,查看下一个字符,若为换行符,则说明读取了整行。
- 读取空行时,使用cin.clear();恢复输入。
- 混合输入字符串和数字
04 string类
string对象可以声明为简单变量,而不是数组。
程序能够自动处理string的大小。
string str1;
cin>>str1;
str1创建一个长度为0的string对象,但读取输入之后,将自动调整str1的长度。
可以将一个string对象赋给另一个string对象 。可以使用+将两个string对象合并起来,使用+=将字符串附加到string对象的末尾。
函数size()返回字符串包含的字符数。int len=str1.size()
char number[20];
int a=strlen(number);//a 为27
函数strlen从数组的第一个元素开始计算字节数,直到遇到空字符,未初始化的数据,第一个空字符出现位置是随机的,所以长度与数组长度不一致。
原始字符串。在原始字符串中,字符表示它本身,用"(和)"作界定符,使用前缀R来标记。
05 结构
同一个结构可以存储多种类型的数据。
创建一个结构
inflatable结构有三个成员。
inflatable hat;//创建一个inflatable类型的变量
C++允许在声明结构变量时省略关键字struct。
变量初始化,用逗号隔开
可以将结构赋给另一个同类型的结构。
同时定义结构和创建结构变量。
结构数组。
inflatable gifts[100];
每一个数组的元素都是一个inflatable类型的结构变量,但gifts是一个数组。
06 共用体
能够存储不同的数据类型,但只能同时存储其中的一种类型。共用体的长度为其最大成员长度。
07 枚举
spectrum被称为枚举,大括号里的被称为枚举量。
spectrum bank;
bank = red;
设置枚举量的值,使用=
first默认为0,没有被初始化的枚举量的值将比前面的枚举量大1,third=101.
枚举量的值可以相同。