鍍金池/ 教程/ C/ 數(shù)組
動(dòng)態(tài)內(nèi)存
類和對(duì)象
接口 (抽象類)
結(jié)構(gòu)體
循環(huán)的類型
函數(shù)
數(shù)字
日期和時(shí)間
基本語法
多態(tài)
數(shù)據(jù)抽象
注釋
命名空間
字符串
預(yù)處理器
決策語句
修飾符的類型
鍙橀噺綾誨瀷
基本輸入輸出
操作符
數(shù)組
模板
多線程
繼承
Web 編程
信號(hào)處理
指針
存儲(chǔ)類型
概述
引用
常量
異常處理
開發(fā)環(huán)境
重載
變量作用域
數(shù)據(jù)類型
數(shù)據(jù)封裝
文件和流

數(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ù)組,需要使用如下語句。

    double balance[10];

初始化數(shù)組

你可以一個(gè)接著一個(gè)或者是使用一個(gè)單獨(dú)的語句來初始化一個(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;

上面的語句將數(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="" />

訪問數(shù)組元素

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

    double salary = balance[9];

上面的語句將第 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ù)組。
下一篇:異常處理