C语言使用术语“派生类型”,C++对类关系使用术语“派生”。所以就改用“复合类型”。
数组
数组是一种数据格式,能够存储多个同类型的值。
数组声明应指出以下三点:
存储在每个元素中的值的类型;
数组名;
数组中的元素数;
通用的声明格式: typeName arrayName[arraysize];
声明中所有的值在编译时都是已知的。arraysize不能是变量,变量的值是在程序运行时设置的。C++可以使用new运算符来避开这种限制;
数组的特性:
可以单独访问数组元素;
方法是使用下标或索引来对元素进行编号;
C++数组从0开始编号;
C++使用带索引的方括号表示法来指定数组元素,称为随机访问;
最后一个元素的索引比数组长度小1;
编译器不会检查数组下标是否有效。本着信任程序员的原则,程序员必须确保下标的有效性。下标无效会引发数组越界,可能会修改破坏数据或代码,后果很严重。
数组的初始化
只有在定义数组时才能使用初始化。
例:int yamcosts[3]={20,30,5};
不能将一个数组赋值给另一个数组;
初始化数组时,提供的值可以少于数组的元素数目;
也可以把数组元素都初始化为零,例:long totals[500]={0};
如果初始化数组中的方括号[]为空,C++编译器将计算元素个数:
例:short things[ ] ={1,5,3,8};
C++11数组初始化方法
可以使用大括号
C++标准模板库(STL)提供了一种数组替代品——模板类vector,而C++新增了模板类array。
======================================
字符串
字符串是存储在内存的连续字节中的一系列字符。C++处理字符串的方式有两种:第一种来自C语言,常被称为C-风格字符串。另一种是基于string类库的方法。
字符串可以存储在char数组中。其实字符串可以解释为以