- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机二级第06讲
为了解决比较复杂的问题,本章介绍C语言提供的一种最简单的构造类型──数组。
数组含义:多个变量的有序排列.从存储角度看,如果一个变量代表一个存储单元,那么一个数组则代表一批连续排列在一起的存储单元,并且存放相同类型的数据。
6.1 一维数组的定义和引用
6.2 二维数组的定义和引用
6.3 字符数组与字符串
[Return]
第6章 数 组
6.1 一维数组的定义和引用
6.1.1 一维数组的定义
6.1.2 一维数组元素的引用
6.1.3 一维数组元素的初始化
6.1.4 一维数组应用举例
[Return]
数组同变量一样,也必须先定义、后使用。
一维数组是只有1个下标的数组,定义形式如下:
数据类型 数组名[常量表达式][, 数组名2[常量表达式2]……];
(1)“数据类型”是指数组元素的数据类型。
(2)数组名,与变量名一样,必须遵循标识符命名规则。
(3)“常量表达式”必须用方括号括起来,指的是数组的元素个数(又称数组长度),它是一个整型值,其中可以包含常数和符号常量,但不能包含变量。注意:C语言中不允许动态定义数组。
6.1.1 一维数组的定义
特别说明:在数组定义时,“常量表达式”外的方括号;以及元素引用时,“下标表达式”外的方括号,都是C语言语法规则所要求的,不是本书所约定的可选项的描述符号。
(4)数组元素的下标,是元素相对于数组起始地址的偏移量,所以从 0 开始顺序编号。
(5)数组名中存放的是一个地址常量,它代表整个数组的首地址。同一数组中的所有元素,按其下标的顺序占用一段连续的存储单元。
a 等价于 a[0]. (a已经不是一个变量,而是一个地址)
6.1.1 一维数组的定义
地址计算: 例如: int a[5]; 数组a的起始地址为1000.
a[0]
a[1]
a[2]
a[3]
a[4]
1000
Loc(a[4])
计算公式: loc(a[i])=loc(a[0])+i*b
其中b代表每个元素所占的字节数.
例如:上图中数组a的起始地址为1000, a的类型为整型(2字节),则a[4]的起始地址为1008.
[Return]
6.1.2 数组元素的引用
引用数组中的任意一个元素的形式:
数组名[下标表达式]
1.“下标表达式”可以是任何非负整型数据,取值范围是0~(元素个数-1)。
特别强调:在运行C语言程序过程中,系统并不自动检验数组元素的下标是否越界。因此在编写程序时,保证数组下标不越界是十分重要的.
6.1.2 数组元素的引用
2.一个数组元素,实质上就是一个变量,它具有和相同类型单个变量一样的属性,可以对它进行赋值和参与各种运算。
3.在C语言中,数组不能作为一个整体参加数据运算,只能对单个的数组元素进行处理。
[Return]
6.1.3 一维数组元素的初始化
初始化格式:
数据类型 数组名[常量表达式]={初值表}
(1)如果对数组的全部元素赋以初值,定义时可以不指定数组长度(系统根据初值个数自动确定)。如果被定义数组的长度,与初值个数不同,则数组长度不能省略。
例: int a[]={1,3,5,7,9};
6.1.3 一维数组元素的初始化
(2)“初值表”中的初值个数,可以少于元素个数,即允许只给部分元素赋初值。且没有赋值的元素值为0.如果没有赋值和初始化,则数组元素的值为不确定的数。(举例说明62.c)
例: int a[10]={1,2,3,4,5}; 则a[5]~a[9]都为0.
(3)如果给一维数组赋值或输出,采用一层循环,用循环变量作为下标进行控制。
[Return]
示例1(max.c):求数组元素的最大值
#includestdio.h
main()
{ int i,a[10],max;
for(i=0;i10;i++)
scanf(%d,a[i]);
max=a[0];
for(i=1;i10;i++)
{ if(a[i]max) max=a[i]; }
printf(%d ,max);
}
示例2(jiaohuan.c):交换数组元素,使第一个和最后一个交换,第二个和倒数第二个交换,依次类推。如数组为1,2,3,4,5,6,7,8,9,10,交换后为10,9,8,7,6,5,4,3,2,1(或者称为:逆置数组元素中的值)
#includestdio.h
main()
{ int i,a[10],t;
for(i=0;i10;i++)
scanf(%d,a[i]);
for(i=0;i10/2;i++)
{t=a[i];a[i]=a[10-1-i]; a[10-1-i]=t;}
for(i=0;i1
您可能关注的文档
最近下载
- 中医妇科临床诊疗指南——妊娠恶阻.pdf
- 猪咬伤诊疗规范考试试卷试题及参考答案.docx VIP
- 海蜇蜇伤诊疗规范考试试卷试题及参考答案.docx VIP
- 2023年云南文山州砚山县江那镇人民政府村(社区)后备干部及社会服务岗位人员招聘笔试参考题库附带答案详解.pdf VIP
- 第二阶段课件11检索概论ii.pptx VIP
- 狂犬病诊疗规范2021年版考试试卷试题及参考答案.docx VIP
- 2024年ADA糖尿病诊疗标准更新解读课件.pptx VIP
- 通达信公式编写初中高级全套教程(附:通达信全部函数表).pdf VIP
- 译林牛津版苏教八年级上册英语词汇表(表格版)直接打印.pdf VIP
- 2023年云南文山州砚山县江那镇村(社区)后备干部及社会服务岗位人员招聘笔试参考题库附带答案详解.pdf VIP
文档评论(0)