复合类型

复合类型。除了基本类型,还有复合类型。

数组

数据放在复合类型里,是因为它是使用其他类型来创建的。即“数组”并不是个通用类型(像int一样),数组需要有基本类型来指定。

数组的初始化和 C 差不多。如果并不在意自己是否知道数组的长度,可以用这个用法:

int array[] = {1,2,3,4,5};
int num = sizeof array / sizeof(array[0]);

编译器自动计算数组的长度,我们也可以在程序中获得数组长度。

C++11 提供了新的初始化方法,几个新特性:

  • 可以省略 =

  • 可以不在{}里包含任何东西,所有元素都为0

  • 列表初始化不可以缩窄转换

double arr1[4] {1.0, 1.1, 1.2, 1.3};

STL 库提供了一种数组的代替品——模板类 vecoter,C++11 新增了模板类 array。这些代替品更复杂也更灵活。

字符串

C++中两种处理字符串的方式

  • C-风格字符串

  • 基于 string 类库

C 风格字符串

初始化方法

string 类

C++98 标准中添加了 string 类,扩展了 C++ 库。该类位于名称空间 std 中,string 类定义隐藏了字符串的数组性质,用起来就像是一个普通变量一样。一些 string 类型的特性

类设计让 string 能自动处理字符串的大小。这使得此对象更方便,更重要的是更安全。在 C++11 中,还有更多方式的初始化

结构体

和 C 的结构体基本差不多。但是 C++ 允许在声明结构变量时省略关键字 struct

最后更新于