小古銀的官方網站(完整教程):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];
;以此類推。