C++入門教程(五十二):靜態數組

小古銀的官方網站(完整教程):http://www.xiaoguyin.com/
C++入門教程視頻:https://www.bilibili.com/video/av20868986/

目錄

一維靜態數組

靜態數組就是使用棧內存的數組,一般簡稱數組

基礎示例

以下是數組的創建和簡單使用:

#include <iostream> // std::cout std::endl

int main(void)
{
    // 創建具有10個元素的數組並且全部初始化爲0
    int arr1[10] = {};

    // 跟上面一樣, 賦值符號可省略
    int arr2[10]{};

    // 創建具有10個元素的數組,前三個分別初始化爲1, 2, 3, 剩餘全部初始化爲0
    int arr3[10]{ 1, 2, 3 };

    // 創建具有4個元素的數組, 編譯器在編譯的時候會確定數組中元素的數量
    int arr4[]{ 4, 5, 6, 7 };

    // 對數組的元素進行操作
    arr4[2] = 1024; // arr4的現在元素是{ 4, 5, 1024, 7 }

    // 數組名是內存地址而不是指針, 去掉下面註釋將會報錯
    // arr1 = arr4;

    // 數組名是數組的首地址, 使用指針保存數組首地址
    auto *p = arr4; // int *p = arr4;

    std::cout << p[2] << std::endl;

    return 0;
}

輸出結果:

1024

基礎講解

靜態數組的創建就像上面代碼一樣,使用方法和動態數組一樣。

唯一要注意的是:數組名是數組所佔用的連續棧內存的首地址,它不是指針。

多維數組

基礎示例

#include <iostream> // std::cout std::endl

int main(void)
{
    // 創建具有2 * 3個元素的數組並且全部初始化爲0
    int arr1[2][3] = {};

    // 跟上面一樣, 賦值符號可省略
    int arr2[2][3]{};

    // 創建具有2 * 3個元素的數組並初始化給元素的值
    // 它的值就是
    // 1 2 3
    // 4 5 6
    int arr3[2][3]{ { 1, 2, 3 }, { 4, 5, 6 } };

    // 創建具有2 * 3個元素的數組, 第一維可以省略, 編譯器在編譯的時候會確定第一維元素的數量
    int arr4[][3]{ { 1, 2, 3 },{ 4, 5, 6 } };

    // 對數組的元素進行操作, 改變第2行第3個元素的值
    arr3[1][2] = 1024; // arr4的現在元素是{ { 1, 2, 3 },{ 4, 5, 1024 } }

    // 多維數組實際上也是連續的棧內存
    auto *p = reinterpret_cast<int *>(arr3);
    for (std::size_t i = 0; i < 6; ++i) // arr3有2*3=6個元素
    {
        p[i] = 100 * i;
    }

    // 輸出二維數組arr3的值
    for (std::size_t i = 0; i < 2; ++i)
    {
        for (std::size_t j = 0; j < 3; ++j)
        {
            std::cout << arr3[i][j] << ' ';
        }
        std::cout << std::endl;
    }

    return 0;
}

輸出結果:

0 100 200 
300 400 500 

基礎講解

二維數組的聲明類似於:int arr1[2][3];;而三維數組的聲明類似於:int arr2[10][22][33];;以此類推。

發佈了86 篇原創文章 · 獲贊 125 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章