C++初级学习六——数组

一维数组

定义:

1、数组是把具有相同类型的若干变量按有序的形式组织起来的集合。                                          2、数组是一组用来存放多个相同类型的数据集合,该集合中的每一个成员称为数组元素。
3、通过数组名和一个下标唯一确定的称为一 维数组。
4、数组在使用前必须先定义。

举例:

float a[10];数组a中存贮了10个数组

定义格式:

类型标识符 数组名[整型常量表达式];
int score[5];

数组是整型,长度为5,包含5个数据

说明:

(1) "类型标识符” 表示数组中每个元素的数据类型。   即int

(2)“数组名” 应是合法的用户标识符。score    数字字母下划线,首字母非数字,非关键字

int a-1[5];    不合法,有一个短横杠

(3)“整型常量表达式”用方括号括起来。

int b(5);
/*错误,不能使用圆括号*/

(4) "整型常量表达式”表示数组长度(数组元素个数),下标下限为0,下标上限为"整型常量表达式-1”。
int b[5]; 
数组b有5个元素,分别是: b[0]、 b[1]、 b[2]、b[3]、b[4]

(5) [ ]中可为普通常量或符号常量,不能为变量。

(6)为数组分配连续的存储空间
数组名代表数组在内存中存放的首地址(即数组第一个元素在内存中的存储地址)。

int a[10];

一个整型变量占4个字节,10个占据40个字节

初始化:

定义:

对一维数组元素赋初值,即初始化。

情况一:

定义数组的同时对数组全部元素赋初值

将各元素的初值顺序放在{}内,数据间逗号分隔。字符常量要用单引号括起来

10是可以省略的,{}包含多少数据元素,长度为多少,默认对全部元素进行赋初值

情况二:

对数组部分元素赋初值
后7个元素系统赋初值为0.0

10是不可以省略的

情况三:

如果不进行初始化,随机分配数值

例题:

例题一:数组定义及初始化 :

int a[3]={};
该数组各个元素的值分别为多少?

虽然{}并没有数值,但是它具备初始化的格式(={}),如果一个值也没有的话,那么所有的数据值默认为0
a[0]=0  a[1]=0  a[2]=0

不进行初始化如int a[3];
则各元素的值是随机值。

例题二:数组定义及初始化 :

int a[3]={1};
该数组各个元素的值分别为多少?
a[0]=1     a[1]=0       a[2]=0
如果不赋值,元素默认值为0

引用:

方法:

引用数组中的元素可通过使用数组名及下标来实现。

引用格式:

数组名[下标]

注意:
①下标必须从0开始,上限是 (数组长度-1) ;
例如:数组int a[10]中10个元素的引用:
a[0] a[1] a[2]........a[9]

②下标可以是常量、变量或者表达式
例如:数组int a[10]中元素的引用:

a[1]   a[i]   a[i+1]

③数组同变量一样,必须先定义后引用,原类型能出现的位置都能使用。
a[5]=6; a[7]=a[5]++;
a[6]=3; a[0]=a[5]+a[7]-a[2*3]; 

④数组名表示数组的首地址。a和&a[0]的值相等
scanf(" %d",&a[0]); //引用a[0]元素, 通过键盘为其输入值。
scanf("%d", a); 

⑤在C语言中只能逐个使用下标变量引|用数组元素,而不能一次引用整个数组。
如:输出int a[10]中的元素:
printf( "%d" ,a[0]);
printf(“%d" ,a[1]);
printf(“%d" ,a[2]);

......
printf(“%d”,a[9]);

如:输出int a[10]中的元素:
for(i=0;i<=9;i++)
printf(“%d" ,a[i]);

而不能用一个语句输出整个数组,只能输出该数组的首地址。
printf(“%d" ,a);

例题:

例题一:

如: int i[4]={1,2,3,4};
该数组名称为i;
数组类型为int,数组中元素的数据类型为int;
数组长度为4,即一共4个元素;
数组下标从0开始到数组长度减1,即从0—3;
数组中每- -个元素可以用下标访问:
即i[0] i[1] i[2] i[3]
每一个元素的值为:
i[0]=1      i[1]=2      i[2]=3      i[3]=4

典型错误:

数组的非法操作:

1、用一个已经初始化的数组对另一个数组赋值

原因:不能一次性引用整个数组,只能一个元素一个元素的引用

2、对数组进行整体输入输出

原因:要结合循环,这样只能输出该数组的首地址

3、数组与数组不能进行比较

原因:不能一次性引用整个数组,只能一个元素一个元素的引用

4、数组与数组不能进行运算

原因:不能一次性引用整个数组,只能一个元素一个元素的引用


二维数组
字符数组
数组应用
 

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

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

相关文章

ChatGPT的GPTs是什么?

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 ​ 在 OpenAI 的DevDay&#xff08;11 月 6日&#xff09;&#xff0c;该公司宣布推出 ChatGPT GPT&#xff1a;任何人都可以制作并与他人共享的 ChatGPT 自定义版…

线程池构造方法的认识

线程池中构造方法的认识 文章目录 线程池中构造方法的认识corePoolSize (核心线程数)maximumPoolSize&#xff08;最大线程数&#xff09;keepAliveTime(非核心线程的空闲超时时间)TimeUnitworkQueuethreadFactoryRejectedExecutionHandler拒绝策略 标准库中提供了一个ThreadPo…

智能优化算法应用:基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于北方苍鹰算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.北方苍鹰算法4.实验参数设定5.算法结果6.…

matlab实践(十一):导弹追踪

1.题目 a9.94,x062.06 2.方程 我们有&#xff1a; ( d x d t ) 2 ( d y d t ) 2 w 2 (\frac{\mathrm d\mathrm x}{\mathrm d\mathrm t})^2(\frac{\mathrm d\mathrm y}{\mathrm d\mathrm t})^2\mathrm w^2 (dtdx​)2(dtdy​)2w2 还有导弹始终指向船 ( d x d t d y d t ) …

mingw下编译opencv4.5.2

初衷&#xff1a; 加载之前的模型没问题&#xff0c;但最近加载另一个模型时出现报错&#xff1a; OpenCV: terminate handler is called! The last OpenCV error is: OpenCV(4.1.0) Error: Assertion failed (nodesMapIt ! nodesMap.end()) in sortByExecutionOrder, file G…

Vue和jQuery:横向对比

聚沙成塔每天进步一点点 ⭐ 专栏简介 Vue学习之旅的奇妙世界 欢迎大家来到 Vue 技能树参考资料专栏!创建这个专栏的初衷是为了帮助大家更好地应对 Vue.js 技能树的学习。每篇文章都致力于提供清晰、深入的参考资料,让你能够更轻松、更自信地理解和掌握 Vue.js 的核心概念和技…

java并发编程三 共享内存的问题和synchronized解决方案

文章目录 共享带来的问题synchronized 解决方案方法上的 synchronized 共享带来的问题 小故事 老王&#xff08;操作系统&#xff09;有一个功能强大的算盘&#xff08;CPU&#xff09;&#xff0c;现在想把它租出去&#xff0c;赚一点外快 小南、小女&#xff08;线程&…

数字人解决方案——ER-NeRF实时对话数字人模型推理部署带UI交互界面

简介 这个是一个使用ER-NeRF来实现实时对话数字人、口播数字人的整体架构&#xff0c;其中包括了大语言回答模型、语音合成、成生视频流、背景替换等功能&#xff0c;项目对显存的要求很高&#xff0c;想要达到实时推理的效果&#xff0c;建议显存在24G以上。 实时对话数字人 …

CycleGAN-两个领域非匹配图像的相互转换

1. CycleGAN的简介 pix2pix可以很好地处理匹配数据集图像转换&#xff0c;但是在很多情况下匹配数据集是没有的或者是很难收集到的&#xff0c;但是我们可以很容易的得到两个领域大量的非匹配数据。2017年有两篇非常相似的论文CycleGAN和DiscoGAN&#xff0c;提出了一种解决非匹…

初识Docker-什么是docker

Docker是一个快速交付应用、运行应用的技术 目录 一、Docker 二、运用场景 一、什么是Docker&#xff1f;它的作用是什么&#xff1f; Docker如何解决大型项目依赖关系复杂&#xff0c;不同组件依赖的兼容性问题? Docker允许开发中将应用、依赖、函数库、配置一起打包&…

旅游海报图怎么做二维码展示?扫码即可查看图片

现在旅游攻略的海报可以做成二维码印刷在宣传单单页或者分享给用户来了解目的地的实际情况&#xff0c;出行路线、宣传海报等。用户只需要扫描二维码就可以查看内容&#xff0c;更加的方便省劲&#xff0c;那么旅游海报的图片二维码制作的技巧有哪些呢&#xff1f;使用图片二维…

【Flutter】黑白图片

一、将图片处理成黑白图片 //第一种方法CachedNetworkImage(imageUrl: imageUrl,width: 80,height: 80,fit: BoxFit.cover,color: Colors.black,//目标颜色colorBlendMode: BlendMode.color,//颜色混合模式)//第二种方法ShaderMask(shaderCallback: (Rect bounds) {return Lin…