C++數組
C++提供一種數據結構 - 數組,其存儲相同類型的元件的固定大小的連續集合。數組用於存儲數據的集合,但它往往是更加有用認為數組作為相同類型的變量的集合。
相反,聲明單個變量,如number0,數字1,...,和number99,聲明一個數組變量,如數字使用numbers[0], numbers[1], ..., numbers[99]表示單個變量。在數組的特定元素由一個索引進行訪問。
所有數組由連續的內存位置。最低的地址對應於第一元件和最高地址的最後一個元素。
聲明數組:
在C++中聲明數組,程序員指定元素的類型以及如下的數組所需元素的數量:
type arrayName [ arraySize ];
這就是所謂的一維數組。arraySize必須是整數大於零不變更大,類型可以是任何有效的C++數據類型。例如,要聲明一個10個元素的數組為double類型的balance數組,使用此語句:
double balance[10];
初始化數組
C++可以初始化數組元素的任一個使用單個聲明如下:
double balance[5] = {1000.0, 2.0, 3.4, 17.0, 50.0};
括號{}之間的數值不能大於聲明為方括號[]之間的數組元素的數目。下麵是一個例子,分配數組的單個元素:
如果省略數組的大小,數組隻是足以容納初始化被創建的大小。因此,如果編寫:
double balance[] = {1000.0, 2.0, 3.4, 17.0, 50.0};
創建完全相同的數組,在前麵的例子中那樣。
balance[4] = 50.0;
上述聲明數組中的元素分配第5個元素的值為50.0。數組的第四個索引是第五個元素,即最後一個元素,因為所有數組通常0作為其第一元素,其也被稱為基本索引的索引。以下是我們上麵所討論的同一個數組的圖形表示:
訪問數組元素:
一個元素由索引和數組名訪問。這是由放置在方括號內的元素的索引數組的名稱之後進行。例如:
double salary = balance[9];
上述聲明將采用數組的第10個元素賦值給變量salary。以下是一個例子,將使用所有上述三個概念即聲明,分配和訪問數組:
#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; }
該程序利用了setw()函數來格式化輸出。讓我們編譯和運行上麵的程序,這將產生以下結果:
Element Value 0 100 1 101 2 102 3 103 4 104 5 105 6 106 7 107 8 108 9 109
C++數組詳情:
數組在C++中是十分重要的,應該需要很多更詳細的。有以下幾個重要的概念,C++程序員應該清楚:
概念 | 描述 |
---|---|
多維數組 | C++支持多維數組。多維數組的最簡單的形式是二維數組 |
指針數組 | 可以簡單的通過指定數組名,冇有任何指標產生一個指向數組的第一個元素 |
按數組傳參到函數 | 可以通過指定數組的名稱而不使用索引傳遞給函數的指針數組 |
從函數返回數組 | C++允許函數返回數組 |