第4章 复合类型
本章内容包括:
创建和使用数组。
创建和使用C-风格字符串。
创建和使用string类字符串。
使用方法getline( )和get( )读取字符串。
混合输入字符串和数字。
创建和使用结构。
创建和使用共用体。
创建和使用枚举。
创建和使用指针。
使用new和delete管理动态内存。
创建动态数组。
创建动态结构。
自动存储、静态存储和动态存储。
vector和array类简介。
假设您开发了一个名叫User-Hostile的计算机游戏,玩家需要用智慧来应对一个神秘、险恶的计算机界面。现在,必须编写一个程序来跟踪5年来游戏每月的销售量,或者希望盘点一下与黑客英雄累积的较量回合。您很快发现,需要一些比C++(www.cppentry.com)的简单基本类型更复杂的东西,才能满足这些数据的要求,C++(www.cppentry.com)也提供了这样的东西-复合类型。这种类型是基于基本整型和浮点类型创建的。影响最为深远的复合类型是类,它是将学习的OOP的堡垒。然而,C++(www.cppentry.com)还支持几种更普通的复合类型,它们都来自C语言。例如,数组可以存储多个同类型的值。一种特殊的数组可以存储字符串(一系列字符)。结构可以存储多个不同类型的值。而指针则是一种将数据所处位置告诉计算机的变量。本章将介绍所有这些复合类型(类除外),还将介绍new和delete及如何使用它们来管理数据。另外,还将简要地介绍string类,它提供了另一种处理字符串的途径。
4.1 数组(1)
数组(array)是一种数据格式,能够存储多个同类型的值。例如,数组可以存储60个int类型的值(这些值表示游戏5年来的销售量)、12个short值(这些值表示每个月的天数)或365个float值(这些值指出一年中每天在食物方面的开销)。每个值都存储在一个独立的数组元素中,计算机在内存中依次存储数组的各个元素。
要创建数组,可使用声明语句。数组声明应指出以下三点:
存储在每个元素中的值的类型;
数组名;
数组中的元素数。
在C++(www.cppentry.com)中,可以通过修改简单变量的声明,添加中括号(其中包含元素数目)来完成数组声明。例如,下面的声明创建一个名为months的数组,该数组有12个元素,每个元素都可以存储一个short类型的值:
事实上,可以将数组中的每个元素看作是一个简单变量。
声明数组的通用格式如下:
表达式arraySize指定元素数目,它必须是整型常数(如10)或const值,也可以是常量表达式(如8 * sizeof(int)),即其中所有的值在编译时都是已知的。具体地说,arraySize不能是变量,变量的值是在程序运行时设置的。然而,本章稍后将介绍如何使用new运算符来避开这种限制。