日韩精品 中文字幕 动漫,91亚洲午夜一区,在线不卡日本v一区v二区丶,久久九九国产精品自在现拍

正文

for循環(huán)、字符串與數(shù)組(10)

通過(guò)游戲編程實(shí)戰(zhàn)教新手學(xué)C++編程 作者:(美)Michael Dawson


3.4.2  創(chuàng)建數(shù)組

將數(shù)組中元素的個(gè)數(shù)定義為常量是個(gè)不錯(cuò)的想法。程序就使用了MAX_ITEMS來(lái)表示主人公所能攜帶的最大物品數(shù)目。

const int MAX_ITEMS = 10;

聲明數(shù)組的方法和聲明已見(jiàn)過(guò)的變量的方式非常類似:提供一個(gè)類型和一個(gè)名稱。另外,編譯器必須知道數(shù)組的大小,這樣才能預(yù)留出需要的內(nèi)存空間。數(shù)組大小的信息可以用方括號(hào)括起來(lái),然后置于數(shù)組名之后。下面給出聲明表示主人公物品欄的數(shù)組的方式:

string inventory[MAX_ITEMS];

上面代碼聲明了一個(gè)大小為MAX_ITEMS的string對(duì)象數(shù)組inventory(因?yàn)镸AX_ITEMS為10,所以表示10個(gè)string對(duì)象)。

陷阱

聲明數(shù)組的時(shí)候,可以通過(guò)提供一個(gè)初始值列表來(lái)對(duì)數(shù)組進(jìn)行初始化。初始值列表是用花括號(hào)括起來(lái)的元素序列,其中元素用逗號(hào)隔開(kāi)。如下例所示:

string inventory[MAX_ITEMS] = {"sword", "armor", "shield"};

這段代碼聲明了大小為MAX_ITEMS的string對(duì)象數(shù)組inventory。數(shù)組的前3個(gè)元素初始化為"sword"、"armor"和"shield"。

如果在使用初始值列表的時(shí)候忽略元素個(gè)數(shù),那么創(chuàng)建的數(shù)組大小就等于列表中元素的個(gè)數(shù)。下面給出一個(gè)例子:

string inventory[] = {"sword", "armor", "shield"};

因?yàn)槌跏贾盗斜碇杏?個(gè)元素,因此這行代碼創(chuàng)建了一個(gè)大小為3的數(shù)組inventory,其中元素是"sword"、"armor"和"shield"。

3.4.3  數(shù)組的索引

索引數(shù)組的方式和索引string對(duì)象非常類似。可以使用索引號(hào)和下標(biāo)運(yùn)算符([])來(lái)訪問(wèn)任意單個(gè)元素。

接下來(lái),程序用下標(biāo)運(yùn)算符給物品欄添加了3個(gè)物品:

int numItems = 0;

inventory[numItems++] = "sword";

inventory[numItems++] = "armor";

inventory[numItems++] = "shield";

程序首先定義了numItems,它表示主人公當(dāng)前攜帶的物品數(shù),然后將"sword"賦值給了數(shù)組的位置0。因?yàn)槭褂玫氖呛笾眠f增運(yùn)算符,所以數(shù)組被賦值后numItems才遞增。接下來(lái)兩行將"armor"和"shield"添加到數(shù)組中。代碼結(jié)束后,numItems理所當(dāng)然地成為了3。

主人公已經(jīng)儲(chǔ)備了一些物品,現(xiàn)在顯示一下他的物品欄:

cout << "Your items:\n";

for (int i = 0; i < numItems; ++i)

{

cout << inventory[i] << endl;

}

這段代碼應(yīng)當(dāng)讓人回憶起字符串索引。代碼循環(huán)訪問(wèn)inventory的前3個(gè)元素,并按順序顯示每個(gè)string對(duì)象。

接下來(lái),主人公用他的劍換來(lái)了一把戰(zhàn)斧。這由下面一行代碼完成:

inventory[0] = "battle axe";

這段代碼用string對(duì)象"battle axe"給inventory中位置0的元素重新賦值。于是,inventory的前3個(gè)元素分別為"battle axe"、"armor"和"shield"。

陷阱

數(shù)組從0開(kāi)始索引,正如string對(duì)象一樣。也就是說(shuō)下面代碼定義了一個(gè)包含5個(gè)元素的數(shù)組:

int highScores[5];

合法位置從0到4(包括0和4)。不存在元素highScores[5]!嘗試訪問(wèn)highScores[5]可能導(dǎo)致災(zāi)難性后果,如程序崩潰。


上一章目錄下一章

Copyright ? 讀書(shū)網(wǎng) rgspecialties.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)