C++的原生數(shù)組你了解多少
1.數(shù)組
1.1 數(shù)組的聲明格式
1.1.1. 格式一
數(shù)據(jù)類(lèi)型 數(shù)組變量名稱(chēng)[數(shù)組元素個(gè)數(shù)]{初始化值, 初始化值...}
int a[10]{};
1.1.2. 格式二
變量類(lèi)型 數(shù)組名[]{初始化, 初始化...}
int a []{1, 2, ,3};//編譯器會(huì)自動(dòng)將a聲明為一個(gè)有3個(gè)元素的數(shù)組
1.2.數(shù)組的本質(zhì)
數(shù)組的本質(zhì)是按照所申請(qǐng)的數(shù)據(jù)類(lèi)型,向操作系統(tǒng)申請(qǐng)了一段連續(xù)的內(nèi)存空間。兩個(gè)特征:
連續(xù)的有序的
2. 數(shù)組遍歷
2.1. 常規(guī)
int studentId[]{101, 102, 103, 104, 105, 106};
//數(shù)組遍歷
for (int i = 0; i < sizeof(studentId) / sizeof(int); i++)
std::cout << studentId[i] << std::endl;
2.2. C++ 11 遍歷新語(yǔ)法
2.2.1. 格式一
for(變量類(lèi)型 變量名稱(chēng):數(shù)組)
循環(huán)內(nèi)容;
for (int i : studentId) std::cout << i << std::endl; //i 不再是索引,而是數(shù)組內(nèi)的元素;
2.2.2. 格式二
for(auto 變量名稱(chēng):數(shù)組)
循環(huán)內(nèi)容;
for (auto i : studentId) std::cout << i << std::endl; //i 不再是索引,而是數(shù)組內(nèi)的元素;
3. 多維數(shù)組
3.1 多維數(shù)組的本質(zhì)

3.2. 聲明格式
類(lèi)型 變量名稱(chēng)[元素個(gè)數(shù)][元素個(gè)數(shù)]...[元素個(gè)數(shù)]{};
int studentId[3][5]{};
多維數(shù)組的初始化:
int studentId[3][5]
{
{101, 102, 103, 104, 105, 106},
{201, 202, 203, 204, 205, 206},
{301, 302, 303, 304, 305, 306}
};
3.3. 多維數(shù)組的遍歷
int studentId[3][5]{
{1, 2, 3, 4, 5},
{11, 12, 13, 14, 15},
{21, 22, 23, 24, 25}
};
for (int x = 0; x < 3; x++)
{
int count{};
for (int y: studentId[x])
{
count++;
std::cout << x + 1 << "班第" << count << "個(gè)同學(xué)的學(xué)號(hào)是" << y << std::endl;
}
}
4. 數(shù)組安全
由于數(shù)組的本質(zhì)是向操作系統(tǒng)申請(qǐng)了一塊內(nèi)存,因此越界的數(shù)組將會(huì)訪(fǎng)問(wèn)到不該訪(fǎng)問(wèn)的地址,這種越界將會(huì)造成程序奔潰,BUG,錯(cuò)誤,更可怕的是,數(shù)組越界漏洞,可能會(huì)讓攻擊著拿到操作系統(tǒng)的控制權(quán)。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
C語(yǔ)言判斷一個(gè)數(shù)是否是2的冪次方或4的冪次方
本文中我們來(lái)看一下如何用C語(yǔ)言判斷一個(gè)數(shù)是否是2的冪次方或4的冪次方的方法,并且判斷出來(lái)是多少次方,需要的朋友可以參考下2016-06-06
一文搞懂C語(yǔ)言static關(guān)鍵字的三個(gè)作用
這篇文章主要介紹了C語(yǔ)言static關(guān)鍵字的三個(gè)作用,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)掃雷游戲
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言數(shù)組應(yīng)用實(shí)現(xiàn)掃雷游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
詳解C語(yǔ)言隨機(jī)數(shù)設(shè)置的三種方式(保姆級(jí)教程)
本篇文章將為大家介紹在C語(yǔ)言中設(shè)置隨機(jī)數(shù)的三大方法的使用,文中的示例代碼講解詳細(xì),對(duì)我們學(xué)習(xí)C語(yǔ)言有一定的幫助,需要的可以參考一下2022-11-11
C++ vector如何動(dòng)態(tài)申請(qǐng)內(nèi)存的元素
vector是一種動(dòng)態(tài)數(shù)組,本文主要介紹了C++ vector如何動(dòng)態(tài)申請(qǐng)內(nèi)存的元素,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-07-07
C語(yǔ)言main函數(shù)的參數(shù)及其返回值詳細(xì)解析
main函數(shù)的返回值用于說(shuō)明程序的退出狀態(tài)。如果返回0,則代表程序正常退出;返回其它數(shù)字的含義則由系統(tǒng)決定。通常,返回非零代表程序異常退出2013-10-10
使用CMake構(gòu)建一個(gè)簡(jiǎn)單的C++項(xiàng)目的實(shí)現(xiàn)
CMake是一個(gè)跨平臺(tái)的自動(dòng)化構(gòu)建工具,可以用于構(gòu)建各種類(lèi)型的項(xiàng)目,本文主要介紹了使用CMake構(gòu)建一個(gè)簡(jiǎn)單的C++項(xiàng)目,具有一定的參考價(jià)值,感興趣的可以了解一下2023-10-10

