C++入门第四章:复合类型
1 数组
数组(array)是一种数据格式,能够存储多个同类型的值。
使用数组前,首先要声明。声明包括三个方面:
- 存储每个元素中值的类型
- 数组名
- 数组中的元素个数
声明的通用风格如下:
typename arrayname[arrysize];
注;arrysize指定元素数目,必须是整型常量,不能是变量。
数组的很多用途均基于这样一个事实:可以单独访问数组元素。方法是使用下表或索引对元素进行编号。C++数组从0开始编号,并使用带索引的方括号表示法来指定数组元素。
注:编译器不会检查使用的下表是否有效,所以确保有效的下标值非常重要。
数组的初始化规则
只有在定义时才能使用,以后就不能用了,也不能将一个数组赋值给另一个数组。
int cards[4]={3,6,8,10};
初始化时提供的值可以少于元素数目。如果只对数组的一部分进行初始化,则编译器将其他元素设置为0。
如果初始化数组的时候方括号内为空,编译器将计算元素的个数。如:
short a[]={1,2,3,4};
编译器使a数组包含4个元素。
注:让编译器去计算数组大小是很糟糕的事情。
C++11数组初始化方法
首先,初始化时能够省略等于号。
int a[2]{1,2};
其次,不必在大括号内包含任何东西,这将把所有元素全部置0。
int b[10]={};
第三,列表初始化禁止缩窄。
long c={1.0,2.0,4} //不允许
2 字符串
字符串是存储在内存的连续字节中的一系列字符。
C++使用两种方法处理字符串。一种是C风格字符串,另种是基于string类的方法。
C-风格字符串以空字符作为字符串的结尾。
例:char c1={'a','b','c','d','e','f'}; //不是字符串
char c2={'a','b','c','d','e',' '}; //字符串
cout打印字符串碰到