數(shù)組是一個(gè)可以容納多個(gè)值的數(shù)據(jù)表,全部是一種。
要?jiǎng)?chuàng)建數(shù)組,請(qǐng)使用聲明語句。
例如,以下聲明創(chuàng)建一個(gè)名為months的數(shù)組,它具有12個(gè)元素,每個(gè)元素可以包含一個(gè)類型short值:
short months[12]; // creates array of 12 short
每個(gè)元素本質(zhì)上都是一個(gè)變量,您可以將其視為簡(jiǎn)單變量。
這是聲明數(shù)組的一般形式:
typeName arrayName [arraySize];
表達(dá)式arraySize(它是元素的數(shù)目)必須是整數(shù)常量。
以下代碼演示了數(shù)組的一些屬性,包括聲明數(shù)組,為數(shù)組元素分配值和初始化數(shù)組。
#include <iostream>
using namespace std;
int main()
{
int my_array[3]; // creates array with three elements
my_array[0] = 7; // assign value to first element
my_array[1] = 8;
my_array[2] = 6;
int my_value[3] = {20, 30, 5}; // create, initialize array
cout << my_array[0] + my_array[1] + my_array[2] << endl;
cout << my_array[1] << " my_array costs ";
cout << my_value[1] << ".\n";
int total = my_array[0] * my_value[0] + my_array[1] * my_value[1];
total = total + my_array[2] * my_value[2];
cout << total << " cents.\n";
cout << "\nSize of my_array array = " << sizeof my_array;
cout << " bytes.\n";
cout << "Size of one element = " << sizeof my_array[0];
cout << " bytes.\n";
return 0;
}
上面的代碼生成以下結(jié)果。
您只能在定義數(shù)組時(shí)使用初始化窗體。
int cards[4] = {3, 6, 8, 10}; // okay int hand[4]; // okay
初始化數(shù)組時(shí),可以提供比數(shù)組元素更少的值。
float val[5] = {5.0, 2.5};
如果部分初始化數(shù)組,編譯器會(huì)將剩余的元素設(shè)置為零。
將數(shù)組的所有元素初始化為零 - 很容易將第一個(gè)元素初始化為零:
long totals[500] = {0};
如果在初始化數(shù)組時(shí)將方括號(hào)[]留空,則C ++編譯器將為您計(jì)算元素。
假設(shè),例如,你做出這個(gè)聲明:
short things[] = {1, 5, 3, 8};
編譯器使事情成為四個(gè)元素的數(shù)組。
其次,您可以使用空括號(hào)將所有元素設(shè)置為0:
unsigned int counts[10] = {}; // all elements set to 0 float balances[100] {}; // all elements set to 0
示例:將數(shù)組的元素初始化為零并打印數(shù)組。
#include <iostream>
#include <iomanip>
using namespace std;
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 ] = 0; // set element at location i to 0
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;
}
上面的代碼生成以下結(jié)果。
#include <iostream>
#include <iomanip>
using namespace std;
int main() {
// use initializer list to initialize array n
int n[ 10 ] = { 32, 27, 64, 18, 95, 14, 90, 70, 60, 37 };
cout << "Element" << setw( 13 ) << "Value" << endl;
// output each array element"s value
for ( int i = 0; i < 10; ++i )
cout << setw( 7 ) << i << setw( 13 ) << n[ i ] << endl;
}
上面的代碼生成以下結(jié)果。
對(duì)于二維數(shù)組,每個(gè)元素本身就是一個(gè)數(shù)組。
因此,初始化由逗號(hào)分隔的一維初始化組成,全部包含在一組大括號(hào)中:
int maxtemps[4][5] = // 2-D array { {96, 100, 87, 101, 105}, // values for maxtemps[0] {96, 98, 91, 107, 104}, // values for maxtemps[1] {97, 101, 93, 108, 107}, // values for maxtemps[2] {98, 103, 95, 109, 108} // values for maxtemps[3] };
以下代碼顯示了如何使用嵌套循環(huán)和2-D數(shù)組。
#include <iostream> const int Cities = 5; const int Years = 4; int main() { using namespace std; const char * cities[Cities] = // array of pointers { // to 5 strings "A", "AA", "AAA", "AAAA", "AAAAA" }; int maxtemps[Years][Cities] = // 2-D array { {96, 100, 87, 101, 105}, // values for maxtemps[0] {96, 98, 91, 107, 104}, // values for maxtemps[1] {97, 101, 93, 108, 107}, // values for maxtemps[2] {98, 103, 95, 109, 108} // values for maxtemps[3] }; cout << "Maximum temperatures for 2008 - 2011\n\n"; for (int city = 0; city < Cities; ++city) { cout << cities[city] << ":\t"; for (int year = 0; year < Years; ++year) cout << maxtemps[year][city] << "\t"; cout << endl; } return 0; }
更多建議: