數(shù)組

2018-08-12 22:03 更新

數(shù)組

C++ 提供了一種數(shù)據(jù)結(jié)構(gòu),數(shù)組,它存儲(chǔ)了一個(gè)固定大小的相同類型的有序集合的元素。一個(gè)數(shù)組通常被用來存儲(chǔ)大量的數(shù)據(jù),但往往將數(shù)組看作是一個(gè)相同類型的變量的集合。

不是聲明單獨(dú)的變量,例如數(shù)字 0,數(shù)字 1,...,和數(shù)字 99,你可以聲明一個(gè)數(shù)組變量,例如 numbers,并且使用 number[0],number[1] 和 ...,number[99] 來表示單個(gè)變量。數(shù)組中的特定元素是通過索引訪問的。

所有的數(shù)組組成連續(xù)的內(nèi)存位置。最低地址對(duì)應(yīng)于第一個(gè)元素,最高地址對(duì)應(yīng)最后一個(gè)元素。

聲明數(shù)組

要在 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];

初始化數(shù)組

你可以一個(gè)接著一個(gè)或者是使用一個(gè)單獨(dú)的語(yǔ)句來初始化一個(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ù)組的圖案表示:

訪問數(shù)組元素

一個(gè)元素通過索引數(shù)組名稱被訪問。這是通過將元素的索引放置在數(shù)組名字后面的方括號(hào)中來完成的,舉例:

    double salary = balance[9];

上面的語(yǔ)句將第 10 個(gè)元素從數(shù)組中取出來,并將該值賦給 salary 變量。以下是一個(gè)例子,即使用所有上述提到的三個(gè)概念,即聲明,初始化和訪問數(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ù)來格式化輸出。當(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

詳細(xì)的 C++ 數(shù)組

數(shù)組對(duì) C++ 非常重要,而且應(yīng)該需要大量的詳細(xì)信息。這里有以下幾個(gè) C++ 程序員應(yīng)該清楚的重要的概念。

概念 描述
多維數(shù)組 C++ 支持多維數(shù)組。多維數(shù)組最簡(jiǎn)單的形式是二維數(shù)組。
指向數(shù)組的指針 你可以通過簡(jiǎn)單的指定數(shù)組的名字來生成這個(gè)數(shù)組的第一個(gè)元素的指針,并不需要任何索引的。
將數(shù)組傳遞給函數(shù) 你可以不使用索引直接通過指定數(shù)組的名字將一個(gè)指向數(shù)組的指針傳遞給函數(shù)。
從函數(shù)中返回?cái)?shù)組 C++ 允許函數(shù)返回一個(gè)數(shù)組。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)