今天小编给大家分享一下C++的原生数组是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

1.数组1.1 数组的声明格式1.1.1. 格式一

数据类型 数组变量名称[数组元素个数]{初始化值, 初始化值...}

inta[10]{};1.1.2. 格式二

变量类型 数组名[]{初始化, 初始化...}

inta[]{1,2,,3};//编译器会自动将a声明为一个有3个元素的数组1.2.数组的本质

数组的本质是按照所申请的数据类型,向操作系统申请了一段连续的内存空间。两个特征:

连续的有序的

2. 数组遍历2.1. 常规

intstudentId[]{101,102,103,104,105,106};//数组遍历for(inti=0;i<sizeof(studentId)/sizeof(int);i++)std::cout<<studentId[i]<<std::endl;2.2. C++ 11 遍历新语法2.2.1. 格式一

for(变量类型 变量名称:数组)
循环内容;

for(inti:studentId)std::cout<<i<<std::endl;//i不再是索引,而是数组内的元素;2.2.2. 格式二

for(auto 变量名称:数组)
循环内容;

for(autoi:studentId)std::cout<<i<<std::endl;//i不再是索引,而是数组内的元素;3. 多维数组3.1 多维数组的本质

3.2. 声明格式

类型 变量名称[元素个数][元素个数]...[元素个数]{};

intstudentId[3][5]{};

多维数组的初始化:

intstudentId[3][5]{{101,102,103,104,105,106},{201,202,203,204,205,206},{301,302,303,304,305,306}};3.3. 多维数组的遍历

intstudentId[3][5]{{1,2,3,4,5},{11,12,13,14,15},{21,22,23,24,25}};for(intx=0;x<3;x++){intcount{};for(inty:studentId[x]){count++;std::cout<<x+1<<"班第"<<count<<"个同学的学号是"<<y<<std::endl;}}4. 数组安全

由于数组的本质是向操作系统申请了一块内存,因此越界的数组将会访问到不该访问的地址,这种越界将会造成程序奔溃,BUG,错误,更可怕的是,数组越界漏洞,可能会让攻击着拿到操作系统的控制权。

以上就是“C++的原生数组是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。