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ǔ)言實(shí)現(xiàn)外賣(mài)管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言實(shí)現(xiàn)外賣(mài)管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-11-11
QT5?Thread線(xiàn)程的具體實(shí)現(xiàn)
本文主要介紹了QT5?Thread線(xiàn)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
初識(shí)C++?Vector模板與實(shí)例化原理
這篇文章主要為大家介紹了初識(shí)C++?Vector模板與實(shí)例化原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
C/C++ Qt TreeWidget 嵌套節(jié)點(diǎn)操作使用
本文主要介紹了TreeWidget的如何使用,實(shí)現(xiàn)對(duì)樹(shù)形框多節(jié)點(diǎn)的各種操作,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
C++?實(shí)現(xiàn)讀寫(xiě)鎖的代碼詳解
C++讀寫(xiě)鎖是一種多線(xiàn)程同步機(jī)制,它允許多個(gè)線(xiàn)程同時(shí)讀取共享數(shù)據(jù),但只允許一個(gè)線(xiàn)程寫(xiě)入共享數(shù)據(jù),這種鎖可以提高程序的并發(fā)性和性能,本文給大家介紹了C++?實(shí)現(xiàn)讀寫(xiě)鎖的代碼,需要的朋友可以參考下2023-10-10

