3.4.3 数组的索引
索引数组的方式和索引string对象非常类似。可以使用索引号和下标运算符([])来访问任意单个元素。
接下来,程序用下标运算符给物品栏添加了3个物品:
- int numItems = 0;
- inventory[numItems++] = "sword";
- inventory[numItems++] = "armor";
- inventory[numItems++] = "shield";
程序首先定义了numItems,它表示主人公当前携带的物品数,然后将"sword"赋值给了数组的位置0。因为使用的是后置递增运算符,所以数组被赋值后numItems才递增。接下来两行将"armor"和"shield"添加到数组中。代码结束后,numItems理所当然地成为了3。
主人公已经储备了一些物品,现在显示一下他的物品栏:
- cout << "Your items:\n";
- for (int i = 0; i < numItems; ++i)
- {
- cout << inventory[i] << endl;
- }
这段代码应当让人回忆起字符串索引。代码循环访问inventory的前3个元素,并按顺序显示每个string对象。
接下来,主人公用他的剑换来了一把战斧。这由下面一行代码完成:
- inventory[0] = "battle axe";
这段代码用string对象"battle axe"给inventory中位置0的元素重新赋值。于是,inventory的前3个元素分别为"battle axe"、"armor"和"shield"。
陷阱
数组从0开始索引,正如string对象一样。也就是说下面代码定义了一个包含5个元素的数组:
- int highScores[5];
合法位置从0到4(包括0和4)。不存在元素highScores[5]!尝试访问highScores[5]可能导致灾难性后果,如程序崩溃。