C++的原生数组你了解多少

 更新时间:2022年02月17日 15:29:05   作者:南城同学  
这篇文章主要为大家详细介绍了C++的原生数组,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

1.数组

1.1 数组的声明格式

1.1.1. 格式一

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

int a[10]{};

1.1.2. 格式二

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

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

1.2.数组的本质

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

连续的有序的

2. 数组遍历

2.1. 常规

	int studentId[]{101, 102, 103, 104, 105, 106};
	//数组遍历
	for (int i = 0; i < sizeof(studentId) / sizeof(int); i++)
		std::cout << studentId[i] << std::endl;

2.2. C++ 11 遍历新语法

2.2.1. 格式一

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

	for (int i : studentId)
		std::cout << i << std::endl; //i 不再是索引,而是数组内的元素;

2.2.2. 格式二

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

	for (auto i : studentId)
		std::cout << i << std::endl; //i 不再是索引,而是数组内的元素;

3. 多维数组

3.1 多维数组的本质

请添加图片描述

3.2. 声明格式

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

int studentId[3][5]{};

多维数组的初始化:

int studentId[3][5]
{
    {101, 102, 103, 104,  105, 106},
    {201, 202, 203, 204,  205, 206},
    {301, 302, 303, 304,  305, 306}
};

3.3. 多维数组的遍历

	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 << "个同学的学号是" << y << std::endl;
		}
	}

4. 数组安全

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

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!     

相关文章

  • C语言判断一个数是否是2的幂次方或4的幂次方

    C语言判断一个数是否是2的幂次方或4的幂次方

    本文中我们来看一下如何用C语言判断一个数是否是2的幂次方或4的幂次方的方法,并且判断出来是多少次方,需要的朋友可以参考下
    2016-06-06
  • 一文搞懂C语言static关键字的三个作用

    一文搞懂C语言static关键字的三个作用

    这篇文章主要介绍了C语言static关键字的三个作用,本文通过实例代码图文相结合给大家介绍的非常详细,需要的朋友可以参考下
    2022-04-04
  • C语言数组应用实现扫雷游戏

    C语言数组应用实现扫雷游戏

    这篇文章主要为大家详细介绍了C语言数组应用实现扫雷游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 详解C语言随机数设置的三种方式(保姆级教程)

    详解C语言随机数设置的三种方式(保姆级教程)

    本篇文章将为大家介绍在C语言中设置随机数的三大方法的使用,文中的示例代码讲解详细,对我们学习C语言有一定的帮助,需要的可以参考一下
    2022-11-11
  • C/C++中四种常用查找算法的实现

    C/C++中四种常用查找算法的实现

    C语言作为一种强大的编程语言,提供了多种搜索算法的实现方式,本文将介绍C语言中的四种常见搜索算法并提供每种算法的简单实现示例,需要的小伙伴可以参考下
    2023-11-11
  • C++ vector如何动态申请内存的元素

    C++ vector如何动态申请内存的元素

    vector是一种动态数组,本文主要介绍了C++ vector如何动态申请内存的元素,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • 一文带你深入了解C++中的类型转换

    一文带你深入了解C++中的类型转换

    在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化。本文主要介绍了C++中常见的四个类型转换,需要的可以参考一下
    2022-12-12
  • C语言main函数的参数及其返回值详细解析

    C语言main函数的参数及其返回值详细解析

    main函数的返回值用于说明程序的退出状态。如果返回0,则代表程序正常退出;返回其它数字的含义则由系统决定。通常,返回非零代表程序异常退出
    2013-10-10
  • 使用CMake构建一个简单的C++项目的实现

    使用CMake构建一个简单的C++项目的实现

    CMake是一个跨平台的自动化构建工具,可以用于构建各种类型的项目,本文主要介绍了使用CMake构建一个简单的C++项目,具有一定的参考价值,感兴趣的可以了解一下
    2023-10-10
  • C语言实现出栈序列

    C语言实现出栈序列

    这篇文章主要为大家详细介绍了C语言实现出栈序列,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-05-05

最新评论