版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第6章数组本章要点:(1)一维数组;(2)二维数组;(3)字符数组和字符串。返回6.1数组概述在C语言中表达式数列和矩阵是通过数组完成的。与数列名和矩阵名等价的是数组名,数列对应于一维数组,而矩阵对应于二维数组。但有一个区别,就是在所有的程序设计语言中无法把下标写的那么小。为了与数学上的概念统一,C语言把下标写在方括号“[]”里,这样表示数学上的x1和y12在C语言中就可以分别写成x[1]和y[1][2]了。所谓数组是指一组有序数据的集合,用一个统一数组名标识这一数组,用下标来指示数组中元素的位置。数组是最简单的一种构造类型,其数组元素为同一类型,即可以为简单类型,也可以是构造类型。返回6.2一维数组6.2.1一维数组的定义定义一维数组的语法格式为:类型符数组名[元素个数];其中“数组名”应为合法的标识符;“元素个数”为常量或常量表达式,不能为变量或由变量组成的表达式。例如:
inta[5];定义了一个数组a,它有5个元素,每个元素的类型为int,可以称a为整型数组。注意,在C语言中数组元素的序号(下标)是从0开始的。因此a数组所包含的5个元素是a[0]、a[1]、a[2]、a[3]、a[4],而不含a[5]。下一页返回6.2一维数组6.2.2一维数组的引用数组在定义之后即可引用,一般的引用格式为:
a[0]=3*a[3]-a[n-2];数组元素实际是一种带下标的变量,它与简单变量在使用上并无不同。请比较:
intm,n,p,a[5];
m=10;a[2]=5;n=2*m;a[1]=a[2]*3;scanf(“%d”,&p);scanf(“%d”,&a[4]);数组元素最常用的形式是下标用一个整形变量,如a[i]。如果i=0则a[i]表示引用了a[0];而当i=1时,则a[i]表示引用了a[1]。访问数组中所有元素称“遍历数组”,遍历数组时是通过循环来改变下标的。上一页下一页返回6.2一维数组6.2.3一维数组的初始化在定义数组时给元素赋初值。一般语法为:类型符数组名[元素个数]={常量表};如有:inta[5]={1,2,3,4,5};由于定义数组时编译系统为所有元素顺序分配存储单元,初始化时是把常量表中的常量按内存分配顺序依次存入相应的数组元素,结果使a[0]~a[4]分别得到了1~5,如图6.1所示。整形数组a所占的内存单元有5*4=20个字节。说明:(1)若给所有元素赋初值,“元素个数”可以省略。(2)可以只给一部分元素赋初值,但元素个数不能省略,未被赋初值的元素则为0。上一页下一页返回6.2一维数组(3)若使全部元素都为0,可以将其定义为“全局变量”或“静态变量”。(4)若数组在定义时未进行初始化,则各元素的值是随机的。上一页返回6.3二维数组6.3.1二维数组的定义二维数组定义的一般形式为:类型符数组名[行数][列数];例如:intb[2][3];定义了一个2*3的整型数组b,它有2行、3列共6个元素。这6个元素为:b[0][0]b[0][1]b[0][2]b[1][0]b[1][1]b[1][2]C语言中,二维数组的排列顺序是:按行存放,即在内存中先顺序存放第一行的元素,再存放第二行的元素。上面b数组的内存安排如图6.2所示,共占有24个字节的内存单元。C语言允许使用多维数组。多维数组的定义格式为:数组名[元素长度1][元素长度2]……[元素长度n];下一页返回6.3二维数组6.3.2二维数组的引用二维数组元素引用的一般格式为:数组名[行下标][列下标]由于二维数组有两个下标,要遍历二维数组一般得用双重循环完成。通常外层的循环变量控制行下标,而内层循环变量控制列下标。6.3.3二维数组的初始化在定义二维数组时给元素赋初值。一般语法为:类型符数组名[行数][列数]={常量表};初始化时按数组元素的分配顺序是依次存入常量表中的常量,结果使a[0][0]~a[1][2]分别得到了1~6。上一页下一页返回6.3二维数组说明:(1)若给所有元素赋初值,“行数”可以省略,但“列数”不能省略。(2)可以采用分行赋值,以增加程序的可读性。(3)可以只给一部分元素赋初值,未被赋初值的元素则为0。(4)若数组在定义时未进行初始化,则各元素的值是随机的。上一页返回6.4字符数组和字符串6.4.1字符数组与字符串的关系字符数组的定义、初始化与其他类型的数组类似。如:
chars[]={‘C’,‘h’,‘i’,‘n’,‘a’};其内存分配及赋值情况如图6.3所示。这样的内存分配与“China”字符串的内存分配相似。只是少了字符串的结束标志‘\0’。我们对上述数组s稍加改变为:
chars[]={‘C’,‘h’,‘i’,‘n’,‘a’,‘\0’};字符数组s存储的就是一个字符串。如图6.4所示。6.4.2字符数组的输入与输出在使用字符数组时,可以用普通数组的方式一个元素一个元素的处理下一页返回6.4字符数组和字符串,也可以对字符数组整体处理。1.普通数组处理方式(1)当字符数组中存储的字符不是以‘\0’结束时,只能像普通的数组那样,一个元素一个元素的处理。(2)当字符数组中存储的字符是以‘\0’结束的,也可以像普通的数组那样,一个元素一个元素的处理。2.字符数组的整体处理方式当字符数组存储的是字符串时,可以与“%s”格式字符配合,完成字符串的输入/输出。(1)输出字符串输出时,从下标为0的元素开始输出,当遇到‘\0’时停止输出,而‘\0’并不完全输出。上一页下一页返回6.4字符数组和字符串(2)输入字符串Scanf函数中的输入项是字符数组名,它已经是数组的起始地址,此时不能再加地址运算符“&”。6.4.3字符串处理函数1.输出字符串函数语法格式为:puts(字符串表达式)其功能是将“字符串表达式”输出后并换行。2.输入字符串函数语法格式为:gets(字符串变量)其功能是将键盘输入的一行字符串存入“字符串变量”中,当输入回车上一页下一页返回6.4字符数组和字符串时才认为字符串输入结束。3.字符串复制函数语法格式为:strcpy(字符串变量,字符串)其功能是将“字符串”复制到“字符串变量”中,字符串变量必须足够大。4.字符串连接函数语法格式为:strcat(字符串变量,字符串)其功能是将“字符串”连接到“字符串变量”的后面,字符串变量的空间应足够大。5.字符串比较函数语法格式为:strcmp(字符串1,字符串2)其功能是完成“字符串1”与“字符串2”的关系比较,即对两个字符串上一页下一页返回6.4字符数组和字符串自左至右逐个字符按其ASCII码值相比,直到出现不同的字符或遇到‘\0’为止。6.测字符串长度函数语法格式为:strlen(字符串)其功能是得到“字符串”的长度。字符串长度是指双引号括起来的字符个数,即‘\0’前面字符的个数。7.将小写字符串转换为大写字符串函数语法格式为:strupr(字符串)其功能是将字符串中的小写字母换为大写字母。8.将大写字符串转换为小写字符串函数语法格式为:strlwr(字符串)其功能是将字符串中的大写字母换为小写字母。上一页下一页返回6.4字符数组和字符串6.4.4字符串数组所谓字符串数组,就是数组中的每个元素又都是存放字符串的数组。。一个二维数组可以看成是一个一维数组,这个一维数组中的每一个元素都是一个一维数组。从这一概念出发,可以将一个二维的字符数组看作一个字符串数组。例如:charname[3][10];names共有3个元素,每个元素可以存放10个字符。因此可以认为:在二维字符数组的定义中,“行数”指定了字符串的个数,“列数”指定了字符串的最大长度。所以可以把它看成是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年幼儿素质能力测试题及答案
- 2026年宝宝智商测试题及答案
- 2026年经历订货批量测试题及答案
- 2026年大班测试题综合试卷及答案
- 2026年公共基础行政测试题及答案
- 2026年平安基础性格测试题及答案
- 2026年圆测试题带答案
- 2026年食品卫生安全测试题及答案
- 2026年意识能量 测试题目及答案
- 2025-2026学年北师大版数学八年级下册期末必考题检测卷-
- 2026年辽宁锦州海通实业有限公司计划招录28人备考题库及答案详解参考
- 2026年西安工业大学招聘备考题库(14人)含答案详解
- 2025年湖南省事业单位第一次公开招聘工作人员笔试历年典型考题及考点剖析附带答案详解
- 2026青海数字经济发展集团有限公司社会招聘9人笔试参考题库及答案详解
- 2024-2025学年上海市黄浦区七年级(下)期末数学试卷(含解析)
- 2026年安徽省体育彩票管理中心编外聘用人员公开招聘11名考试参考题库及答案解析
- 2026广西能汇投资集团有限公司校园招聘笔试参考题库及答案解析
- 2026年沪教版(五四学制)(新教材)初中生物八年级下册(全册)教案附目录p121新版
- 监理实施细则交底书
- 2026江苏南京六合经济开发区所属国有企业招聘17人笔试历年常考点试题专练附带答案详解
- 2026年4月自考00043经济法概论(财经类)试题及答案含评分参考
评论
0/150
提交评论