C++ 提供了一種數(shù)據(jù)結(jié)構(gòu),數(shù)組,它存儲(chǔ)了一個(gè)固定大小的相同類型的有序集合的元素。一個(gè)數(shù)組通常被用來(lái)存儲(chǔ)大量的數(shù)據(jù),但往往將數(shù)組看作是一個(gè)相同類型的變量的集合。
不是聲明單獨(dú)的變量,例如數(shù)字 0,數(shù)字 1,...,和數(shù)字 99,你可以聲明一個(gè)數(shù)組變量,例如 numbers,并且使用 number[0],number[1] 和 ...,number[99] 來(lái)表示單個(gè)變量。數(shù)組中的特定元素是通過(guò)索引訪問(wèn)的。
所有的數(shù)組組成連續(xù)的內(nèi)存位置。最低地址對(duì)應(yīng)于第一個(gè)元素,最高地址對(duì)應(yīng)最后一個(gè)元素。
要在 C++ 中聲明一個(gè)數(shù)組,程序員需要指定元素的類型和一個(gè)數(shù)組需要的元素的數(shù)目,如下所示:
type arrayName [ arraySize ];
這就是所謂的一維數(shù)組。其中 arraySize 必須是一個(gè)大于零的整數(shù)常量,而且 type 可以是任何有效的 C++ 數(shù)據(jù)類型。例如,若要聲稱一個(gè) double 類型的包含 10 個(gè)元素的 balance 數(shù)組,需要使用如下語(yǔ)句。
double balance[10];
你可以一個(gè)接著一個(gè)或者是使用一個(gè)單獨(dú)的語(yǔ)句來(lái)初始化一個(gè) C++ 數(shù)組,如下所示:
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
大括號(hào) { } 之間的值的大小不能比我們?yōu)閿?shù)組聲明時(shí)的方括號(hào) [ ] 中的數(shù)目大。以下是一個(gè)指定數(shù)組單個(gè)元素的例子。
如果你省略了數(shù)組的大小,我們將創(chuàng)建一個(gè)足夠容納初始化的一個(gè)數(shù)組。如下代碼:
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
就像之前的示例一樣,你將創(chuàng)建一個(gè)完全相同的數(shù)組。
balance[4] = 50.0;
上面的語(yǔ)句將數(shù)組中的第五個(gè)元素定義為 50.0,第四個(gè)數(shù)組索引即第五個(gè)元素,即最后一個(gè)元素,因?yàn)樗械臄?shù)組都使用 0 作為它們第一個(gè)元素的索引,稱為基索引,下面是我們之前討論的同一個(gè)數(shù)組的圖案表示:
http://wiki.jikexueyuan.com/project/cplusplus/images/array_presentation.jpg" alt="" />
一個(gè)元素通過(guò)索引數(shù)組名稱被訪問(wèn)。這是通過(guò)將元素的索引放置在數(shù)組名字后面的方括號(hào)中來(lái)完成的,舉例:
double salary = balance[9];
上面的語(yǔ)句將第 10 個(gè)元素從數(shù)組中取出來(lái),并將該值賦給 salary 變量。以下是一個(gè)例子,即使用所有上述提到的三個(gè)概念,即聲明,初始化和訪問(wèn)數(shù)組:
#include <iostream>
using namespace std;
#include <iomanip>
using std::setw;
int main ()
{
int n[ 10 ]; // n is an array of 10 integers
// initialize elements of array n to 0
for ( int i = 0; i < 10; i++ )
{
n[ i ] = i + 100; // set element at location i to i + 100
}
cout << "Element" << setw( 13 ) << "Value" << endl;
// output each array element's value
for ( int j = 0; j < 10; j++ )
{
cout << setw( 7 )<< j << setw( 13 ) << n[ j ] << endl;
}
return 0;
}
這個(gè)程序使用 setw() 函數(shù)來(lái)格式化輸出。當(dāng)上述代碼編譯執(zhí)行時(shí),它將生成以下結(jié)果:
ElementValue
0 100
1 101
2 102
3 103
4 104
5 105
6 106
7 107
8 108
9 109
數(shù)組對(duì) C++ 非常重要,而且應(yīng)該需要大量的詳細(xì)信息。這里有以下幾個(gè) C++ 程序員應(yīng)該清楚的重要的概念。
概念 | 描述 |
---|---|
多維數(shù)組 | C++ 支持多維數(shù)組。多維數(shù)組最簡(jiǎn)單的形式是二維數(shù)組。 |
指向數(shù)組的指針 | 你可以通過(guò)簡(jiǎn)單的指定數(shù)組的名字來(lái)生成這個(gè)數(shù)組的第一個(gè)元素的指針,并不需要任何索引的。 |
將數(shù)組傳遞給函數(shù) | 你可以不使用索引直接通過(guò)指定數(shù)組的名字將一個(gè)指向數(shù)組的指針傳遞給函數(shù)。 |
從函數(shù)中返回?cái)?shù)組 | C++ 允許函數(shù)返回一個(gè)數(shù)組。 |