返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C++的原生数组你了解多少
  • 174
分享到

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

2024-04-02 19:04:59 174人浏览 八月长安
摘要

目录1.数组1.1 数组的声明格式1.1.1. 格式一1.1.2. 格式二1.2.数组的本质2. 数组遍历2.1. 常规2.2. c++ 11 遍历新语法2.2.1. 格式一2.2.

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,错误,更可怕的是,数组越界漏洞,可能会让攻击着拿到操作系统的控制权。

总结

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

--结束END--

本文标题: C++的原生数组你了解多少

本文链接: https://lsjlt.com/news/139553.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C++的原生数组你了解多少
    目录1.数组1.1 数组的声明格式1.1.1. 格式一1.1.2. 格式二1.2.数组的本质2. 数组遍历2.1. 常规2.2. C++ 11 遍历新语法2.2.1. 格式一2.2....
    99+
    2024-04-02
  • Vue的底层原理你了解多少
    Observer (数据劫持) 核心是通过Obeject.defineProperty()来监听数据的变动,这个函数内部可以定义setter和getter。每当数据发生变化,就会触...
    99+
    2024-04-02
  • javascript的构造函数,原型,原型链和new你了解多少
    目录1、什么是构造函数?2、如何通过构造函数创建一个对象?3、new一个对象的过程发生了什么?4、什么是原型?5、原型、构造函数、实例的关系?6、什么是原型链?7、类?总结1、什么是...
    99+
    2024-04-02
  • java的依赖倒置原则你了解多少
    目录依赖倒置原则案例:背景:1.面向实现编程2.面向接口编程(简单版)总结依赖倒置原则 什么是依赖倒置原则: 高层模块不应该依赖低层模块,二者都应该依赖其抽象 抽象不应该依赖细节,细...
    99+
    2024-04-02
  • JavaScript的数据类型你了解多少
    JavaScript的数据类型你了解多少,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。 前言作为JavaScript...
    99+
    2024-04-02
  • C++的程序流程结构你了解多少
    目录前言1 选择结构1.1 if语句(和C没啥不一样)1.2 三目运算符1.3 switch语句2 循环结构2.1 while 循环语句2.2 do…while循环语句...
    99+
    2024-04-02
  • C++中类模板的应用你了解多少
    目录类模板应用数组类的封装Int的.hpp文件int的测试文件Person类的.hpp文件Person类的测试文件总结类模板应用 数组类的封装 属性: 1,T *pAddress 指...
    99+
    2024-04-02
  • 带你了解C++的数组与函数
    目录数组作为函数的参数数组参数的传递机制数组作为函数的参数 传递首地址。 A进行修改,a同时也会进行修改。 数组参数的传递机制 ...
    99+
    2024-04-02
  • 对象数组在GO语言中的应用,你了解多少?
    在GO语言中,对象数组是一种常见的数据结构,它可以存储一组相同类型的对象,并且可以通过索引来访问每个对象。对象数组在GO语言中的应用非常广泛,可以用于各种场景,如数据存储、算法实现、网络编程等。 在本文中,我们将介绍对象数组的基本概念和使...
    99+
    2023-10-03
    对象 数组 编程算法
  • Python自然语言处理中的数组技巧,你了解多少?
    Python自然语言处理(NLP)是一个广泛应用于文本分析、语音识别、文档分类等领域的技术,其中数组技巧在NLP领域中非常重要。数组是一种可以容纳大量数据的数据结构,它可以快速地进行数据处理和分析。在Python自然语言处理中,数组技巧可...
    99+
    2023-10-31
    自然语言处理 面试 数组
  • Vue组件中的自定义事件你了解多少
    主要介绍组件的自定义事件的概念,使用等。 何为组件自定义事件: 组件自定义事件是一种组件间的通信方式,方向是 子组件====>父组件。使用场景:A是子组件,B是父组件,如果要把...
    99+
    2024-04-02
  • JavaScript的引用数据类型你了解多少
    目录三种传递1、Object1、创建对象语法2、普通对象在内存中的存储方式2、Array1、创建数组语法2、数组的在内存中的存储方式3、数组常用方法1、 concat:用于拼接为新数...
    99+
    2024-04-02
  • Vue.js 的过滤器你了解多少
    目录一、过滤器作用二、过滤器的使用方式三、过滤器的分类四、全局过滤器五、局部过滤器 六、全局过滤器和局部过滤器重名现象总结一、过滤器作用 过滤器用于进行文本内容格式化处理。...
    99+
    2024-04-02
  • SQLServer的触发器你了解多少
    目录什么是触发器DML触发器分为:创建触发器创建insert类型触发器创建delete类型触发器创建update类型触发器update更新列级触发器instead of类型...
    99+
    2024-04-02
  • Java中的异常你了解多少?
    目录 一.认识异常二.异常分类三.异常的分类1.编译时异常2.运行时异常 四.异常的处理1.LYBL:事前防御型2.EAFP:事后认错型 五.异常的抛出Throw==注意事项== 六.异常的捕获1.异常的捕获2.异常声明...
    99+
    2023-12-22
    java python 开发语言
  • C++中的数组你真的理解了吗
    目录1 概述2 一维数组2.1 一维数组定义方式2.2 一维数组组名2.3 冒泡排序3 二维数组3.1 二维数组定义方式3.2 二维数组数组名3.3二维数组应用举例总结1 概述 所谓...
    99+
    2024-04-02
  • java读写串口数据你了解多少
    目录1.导入支持java串口通信的jar包:2.编写代码操作串口:总结最近接触到了串口及其读写,在此记录java进行串口读写的过程。 1.导入支持java串口通信的jar包: 在ma...
    99+
    2024-04-02
  • C++的原生数组是什么
    今天小编给大家分享一下C++的原生数组是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1.数组1.1 数组的声明格式1....
    99+
    2023-06-29
  • node.js-path模块你了解多少
    目录1、什么是path模块2、路径拼接1、 path.join() 的语法格式2、path.join()代码示例3、文件读取路径改写3、获取路径中的文件名1、 path.basena...
    99+
    2024-04-02
  • 对于OpenStack Rocky,你了解多少?
    前不久,备受业界关注的OpenStack第18个版本Rocky正式发布。除了知道新版增强了人工智能,机器学习,NFV和边缘计算能力,关于Rocky的更多细节,相信很多人还不了解。以下信息根据OpenStack Rocky所有官方资料整理。1...
    99+
    2023-06-04
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作