本站電子書

您可以在這些電子書店找到本站電子書: Google Play 圖書iBooks StoreHyReadReadmooPubu
===>>>本站推出學習遊戲意見調查<<<===《如何自學程式設計》入選 Google Play 台灣地區2016年度最佳書籍

C++ 速查手冊 V1.00 - 單元 7.3 - 陣列




陣列是相同資料型態的一組連續數值,裡頭每個數值被稱為元素 (element) ,可依索引值設定或存取指定元素。例如


001 #include <iostream>
002
003 int main() {
004    int a[5];
005    a[0] = 1;
006    a[1] = 2;
007    a[2] = 3;
008    a[3] = 4;
009    a[4] = 5;
010
011    std::cout << "a[0]: "
012              << a[0]
013              << std::endl;
014    std::cout << "a[1]: "
015              << a[1]
016              << std::endl;
017    std::cout << "a[2]: "
018              << a[2]
019              << std::endl;
020    std::cout << "a[3]: "
021              << a[3]
022              << std::endl;
023    std::cout << "a[4]: "
024              << a[4]
025              << std::endl;
026
027    return 0;
028 }
029
030 /* Kaiching Chang 
031    u0703_1.cpp
032    2014-02 */

第 5 行宣告一個整數陣列 a ,識別字後面的中括弧用來指定陣列大小,此例為 5 ,也就是 a 具有 5 個元素


004 int a[5];

下面利用從 0 開始的索引值設定每個陣列元素,注意索引值也是放在中括弧裡頭


005 a[0] = 1;
006 a[1] = 2;
007 a[2] = 3;
008 a[3] = 4;
009 a[4] = 5;

最後依序印出所有的元素值,此例編譯執行結果如下


$ g++ u0703_1.cpp
$ ./a.out
a[0]: 1
a[1]: 2
a[2]: 3
a[3]: 4
a[4]: 5
$

注意陣列的索引值是從 0 開始的。

也可以直接用大括弧設定所有元素,這樣就不需要指定陣列大小,宣告陣列變數時中括弧留空即可,像上例可改成


004 int a[] = {1, 2, 3, 4, 5};

另外比較常見的是利用迴圈 (loop) 存取陣列元素,上例印出部份可改成


011 for (int i = 0; i < 5; i++) {
012    std::cout << "a["
013              << i
014              << "]: "
015              << a[i]
016              << std::endl;
017 }

陣列可以是多維的,這是說陣列可以當作陣列的元素,例如


    int c[2][3] = {{1, 2, 3},
                   {4, 5, 6}};

上面陣列 c 具有兩個元素,兩個元素都是陣列,因此要用兩層中括弧存取元素,寫成完整例子如下


001 #include <iostream>
002
003 int main() {
004    int c[2][3] = {{1, 2, 3},
005                   {4, 5, 6}};
006
007    for (int i = 0; i < 2; i++) {
008       for (int j = 0; j < 3; j++) {
009          std::cout << c[i][j] 
010          << std::endl;
011       }
012    }
013
014    return 0;
015 }
016
017 /* Kaiching Chang 
018    u0703_2.cpp
019    2014-02 */

編譯後執行,結果如下


$ g++ u0703_2.cpp
$ ./a.out
1
2
3
4
5
6
$

continue ...

沒有留言: