数组的详细介绍

数组是一组相同类型元素的集合,也就是说:数组至少包含两个及以上的元素,且元素类型相同。

数组包括一维数组和多维数组,其中二维数组最常见。下面我们一一介绍。

一维数组

格式:type name [常量值];  

        type是类型,它可以是int double float char等类型

        name是数组名字,这个你自己定义,有意义就行

        常量值,也就是数字(在vs里,这里不可以使用变量)

就比如我下面定义应该身高的整型数组:

int hight[10];

有些时候,我们创建数组需要给他初始化,数组的初始化一般使用大括号,将数据放入打括号内,每一个数据之间用逗号隔开。下面我们给出代码,请你一定要仔细观察:

int hight[3]={178,152,185};   int price[3]={50};int score[3]={5,6,8,9};

这里我们初始化了三个数组,其中第一个是完全初始化;第二个不完全初始化,这种初始化,第一个元素的值为50,而数组内后面的元素值都为0;第三个初始化错误,初始化的项数多余数组内元素个数。

数据存在数组中了,那我们怎么查找数据呢?这时就需要数组下标了。

数组下标:

数组的下标和数组元素是一一对应的,数组的下标都是从0开始,数组有n个元素,那么它的下标就是从0到n-1的。

数组的访问需要一个操作符——[],下标引用操作符,这个之前讲过,这里就不重新讲解了,不了解的可以去看这篇博客: 写文章-CSDN创作中心icon-default.png?t=N7T8https://mp.csdn.net/mp_blog/creation/editor/138131954

下面我们给出代码来演示下标是怎么帮助我们查找数组元素的:

 因为数组下标是从0开始,所以我们通过数组下标来查找数组元素时,查找第n个元素,下标就是n-1。

当我们想访问数组中所有的元素时,我们可以使用循环来解决,例如:

访问数组中元素,我们讲完了,接下来说说向数组中放入数据把!

数据的输入:

这个我们同样可以使用循环来完成,例如: 我向数组arr中输入1-10,下面我们来把输进去的值再打印到屏幕上验证一下吧,看看是不是输入和输出的一样 

结果表明,我们这样是可以将数据输入数组中的。

一维数组再内存中的存储:

此时,你觉得数组再内存中存储是连续的还是散乱的呢?我们一起来验证下吧!

我们将上面的代码修改下,不再打出数据,而是将数组中元素的地址打印在屏幕上。 

注意看这张图,这里面的地址都是连续存在的,每个元素都是int类型,所以每个元素都是4个字节,所以相邻元素的地址之间也就相隔4。

由此我们得出结论:数组的元素在内存中是连续存在的 

 二维数组:

前面我们学习了一维数组,当我们把一维数组当作元素存储在数组中,这时候这个数组就是二维数组,⼆维数组作为数组元素的数组被称为三维数组,⼆维数组以上的数组统称为多维数组。这里我们讲下二维数组。

格式:type name[常量值1][常量值2];           这和一维数组类似

int hight[3][2];

就好比hight这个数组,第一个常量值3,代表总共有三行;第二个常量值2;代表有两列。

这里初始化和之前的一维数组类似,只不过,在这里我们要将数组的一行元素全部初始化后,才能继续初始化下一行,例如,我想将hight[3][2]这个数组的每一行都初始化为1,2,3:

int hight[3][2]={1,2,3,1,2,3};

这里常量值1是可以省略的,但是常量值2不可以省略,也就是行数可以不写,但是列数必须写。数组中每一行元素存满之后会自动跳到下一行继续存入数值。

二维数组的输入和输出: 

这个也和一维数组类似,就是需要嵌套循环:

下标查找也都一样,我就不细说了。

一维数组和二维数组的基础方面也就讲完了,后续有不懂的可以留言 私信。 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/22346.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024开放式耳机怎么买才好?这里可以教你六招!

有不少人都在说“开放式蓝牙耳机无音质”,大多数的购买者往往既贪恋蓝牙耳机的便携性,又想要有线耳机的Hifi快感,对于我们来说最重要的就是确定预算和需求,这样才能定位到最适合自己的开放式蓝牙耳机。这么多年零零总总听下来的蓝…

【python】成功解决“ModuleNotFoundError: No module named ‘IPython’”错误的全面指南

成功解决“ModuleNotFoundError: No module named IPython’”错误的全面指南 一、引言 在Python编程中,ModuleNotFoundError是一种常见的错误类型,它通常表明Python解释器无法找到你试图导入的模块。特别是当你遇到“ModuleNotFoundError: No module…

求助!什么软件可以人声分离?手机上可以进行人声分离操作吗?

在数字时代,音频处理变得越来越重要,而人声分离技术则是其中的一项关键技术。很多人可能都有过这样的疑问:什么软件可以实现人声分离?手机上能否进行人声分离操作?今天,我们就来为大家解答这些问题&#xf…

MySql学习(一)——MySQL概述之MySQL的启动

文章目录 一、MySQl概述1.1 启动MySQL1.2 客户端连接1.3 关系型数据库1.4 总结 一、MySQl概述 数据库:存储数据的仓库,数据是有组织的进行存储,简称为(DB)数据库管理系统:操纵和管理数据库的大型软件&…

微型计算机公司 Raspberry Pi 也开始涉足人工智能领域,计划出售AI芯片

Raspberry Pi 与 Hailo 合作,为其微型计算机提供可选的 AI 插件。 随着AI热潮的持续,就连微型计算机公司Raspberry Pi也计划出售AI芯片。它与 Raspberry Pi 的相机软件集成,可以在微型计算机上本地运行聊天机器人等基于人工智能的应用程序。…

Maven实战: 创建自定义archetype

在手动创建SpringBoot应用中,我们讲过手动创建SpringBoot工程是比较麻烦的,尤其是公司内部不有自定义扩展和集成的情况下。利用Maven的archetype:generate能基于项目模板生成功能,自定义模板能让整个创建过程自动化,这样既能大大降…

【UML用户指南】-07-对基本结构建模-公共机制

目录 1、术语和概念 1.1、注解(note) 1.2、修饰 1.3、衍型 1.4、标记值 1.5、约束 1.6、标准元素 1.7、外廓(profile) 2、对新特性建模 3、对新语义建模 注解 (note)是附加在元素或元素集上用来表…

ICLR24大模型提示(2/11) | BatchPrompt:多样本批量提示事半功倍

【摘要】由于大型语言模型 (LLM) 的 token 限制不断增加,使得长上下文成为输入,使用单个数据样本进行提示可能不再是一种有效的方式。提高效率的一个直接策略是在 token 限制内对数据进行批处理(例如,gpt-3.5-turbo 为 8k&#xf…

Python08 循环

循环1. while2. for循环控制1.back 退出当前循环2.continue 结束本次继续下次循环 i 0 while i < 10:print(f我正在学习python {i})i1 #循环增量 print(while 结束)while True:print(f我正在学习python {i})if i > 20:break #退出循环i1 #循环增量 print(while2 结束)# …

【Python机器学习】无监督学习——不同类型的预处理

之前学习过&#xff0c;一些算法&#xff08;比如神经网络和SVM&#xff09;对数据缩放非常敏感。因此&#xff0c;通常的做法是对特征进行调节&#xff0c;使数据更适合于这些算法。通常来说&#xff0c;这是对数据的一种简单的按照特征的缩放和移动。举例&#xff1a; impor…

【python】成功解决“ModuleNotFoundError: No module named ‘graphviz’”错误的全面指南

成功解决“ModuleNotFoundError: No module named ‘graphviz’”错误的全面指南 一、引言 在Python编程中&#xff0c;当尝试导入一个不存在的模块时&#xff0c;你会遇到ModuleNotFoundError错误。当你看到“ModuleNotFoundError: No module named ‘graphviz’”这样的错…

vue无需引入第三方, 将web页面内容直接下载为docx

vue无需引入第三方&#xff0c; 将web页面内容直接下载为docx 将web页面内容重绘 html &#xff0c;通过 a 标签直接下载 通过写行内样式&#xff0c;控制docx中的文字图效果 let echHtmlWithIf ;if (this.chartImg.length) {if (this.exceed10Min) {echHtmlWithIf <div…

Linux线程安全:线程互斥

一、线程互斥的概念 1.1临界资源与互斥的关系 临界资源&#xff1a;多线程执行流共享的资源就叫做临界资源。 临界区&#xff1a;每个线程内部&#xff0c;访问临界资源的代码&#xff0c;就叫做临界区。 互斥&#xff1a;任何时刻&#xff0c;互斥保证有且只有一个执行流进入…

《数字图像处理-OpenCV/Python》第15章:图像分割

《数字图像处理-OpenCV/Python》第15章&#xff1a;图像分割 本书京东 优惠购书链接 https://item.jd.com/14098452.html 本书CSDN 独家连载专栏 https://blog.csdn.net/youcans/category_12418787.html 第15章&#xff1a;图像分割 图像分割是由图像处理到图像分析的关键步骤…

对 SQL 说“不”~

开发人员注意&#xff01; 您在当前的应用程序架构中是否面临这些问题&#xff1f; 对 SQL 数据库的高吞吐量。SQL 数据库中的瓶颈。 内存数据存储将是解决问题的方案。Redis 是市场上最受欢迎的内存数据存储和缓存选项。Redis 拥有广泛的生态系统&#xff0c;因为主要科技巨…

54.WEB渗透测试-信息收集- 端口、目录扫描、源码泄露(2)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;53.WEB渗透测试-信息收集-端口、目录扫描、源码泄露&#xff08;1&#xff09; 关于源码…

Nginx作为下载站点

grep -Ev ^$|# /usr/local/nginx/conf/nginx.conf > /opt/nginx.txt cat /opt/nginx.txt > /usr/local/nginx/conf/nginx.conf用上面的指令提取最小化的配置文件 vim /usr/local/nginx/conf/nginx.conf [rootlocalhost ~]# cat /usr/local/nginx/conf/nginx.conf worker…

解决linux系统求前N月月份的bug

日常工作中&#xff0c;需要获取某个日期&#xff08;20240531&#xff09;的前N个月&#xff0c;通常会写命令 date -d "20240531 last-month" %Y%m 我期望得到202404 但是很意外&#xff1a; 经过几轮测试&#xff0c;发现只要月内天数超过30天&#xff0c;即所有…

短视频动画脚本:成都鼎茂宏升文化传媒公司

短视频动画脚本&#xff1a;创作与魅力的探索 在数字化时代的浪潮中&#xff0c;短视频动画以其独特的魅力迅速崛起&#xff0c;成为大众娱乐和信息传播的重要载体。成都鼎茂宏升文化传媒公司作为一名原创文章编辑&#xff0c;我深入探索了短视频动画脚本的创作过程&#xff0…

二,几何相交-5,BO算法分析--(1)正确性

也就是说&#xff0c;BO算法有没有可能误报或者漏报&#xff1f; 一&#xff0c;为什么不会误报&#xff1f; 因为两条线段从不相邻到相邻&#xff0c;或者其中一条线段不存在到相邻&#xff0c;都会进行一次相交测试。所以不会误报。 二&#xff0c;为什么不会漏报&#xff1…