版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
5.1一维数组5.2二维数组5.3字符数组5.4字符串输入、输出函数5.1一维数组一维数组是最简单的数组类型,数组中每个元素由相同的数组名和唯一的下标来确定并相互区别。5.1.1一维数组的定义一维数组定义的基本格式为其中,类型符用于指定数组的数据类型。数组是同一类型的有序数据的集合,因此数组的数据类型也是该数组中所有组成元素的数据类型。数组名是表示某个特定数组的标识符,其命名方法遵循标识符命名规则。[常量表达式]用来表示数组的长度,说明所包含元素的个数。C语言不允许对数组的大小作动态定义,即数组的大小不依赖于程序运行过程中变量的值,因此方括号中的“常量表达式”可以是整型常量或整型常量表达式,但不能是变量。5.1.2数组元素的引用C语言规定,必须先对数组进行定义,然后才能对数组元素进行逐个引用,也就是要遵循“先定义,后使用”的原则。需要注意的是,由基本数据类型所构造的数据类型,只能引用其组成成员,而不能引用其本身,即数组名不代表整个数组。数组中每个元素的类型由数组的类型决定,每个数组元素由统一的数组名和唯一的下标确定。下标可以是常量、变量或表达式,但必须有确定的整数值。数组元素的下标总是从“0”开始的。所有元素以各自的下标为顺序,在内存中占用一段连续的存储单元。数组常与循环结构结合在一起使用,通过数组的下标和循环结构的控制变量产生联系,可以很方便地引用数组元素。5.1.3一维数组的初始化为使程序简洁,常在定义数组的同时为各数组元素赋值,称为数组的初始化。常见的初始化形式包括:(1)为全部元素赋值,按顺序将数值依次赋给数组中各元素。(2)若省略数组长度,则可由初始化式中数值的个数确定其长度。(3)若初始化式中数值的个数小于数组的长度,则不足的部分默认初始值为0。(4)利用上一特性,可以方便地为全部元素赋初值0。需要注意的是,初始化式以花括号限定,数值间用逗号隔开,初始化式不允许完全为空,即花括号内至少要有一个数值。如果在定义的同时不对数组初始化,则各元素的初始值并不确定。5.1.4一维数组的存储形式数组的所有元素在内存中是以连续字节的形式存放的,数组中各元素所占内存的大小由该数组的数据类型决定,整个数组所占内存的大小为一个元素所占内存的大小与元素的个数乘积。5.2二维数组维数超过一维的数组统称为多维数组。多维数组也是同类型数据的有序集合,存储形式与一维数组相同,即所有元素按顺序占用一段连续的存储单元。本节以多维数组中最常用的二维数组为例进行介绍。在表现形式上,一个二维数组常以行和列的排列形式(类似于数学中的矩阵)出现,这样有助于形象地表示二维数组的逻辑结构。5.2.1二维数组的定义二维数组定义的基本格式为其中,类型符用于指定数组的数据类型,两个[常量表达式]分别指定了二维数组的行数和列数,数组长度(即元素个数)由行数 × 列数来确定。5.2.2二维数组元素的引用与一维数组的引用相似,对二维数组的引用也是通过其下标实现的。在上一节的例题中可以看到一维数组的引用常与循环结构配合使用。类似的,二维数组常与两层嵌套的循环结构结合使用,通过外层循环控制行下标及内层循环控制列下标,可以很方便地实现对各个元素的访问。5.2.3二维数组的初始化常用的二维数组的初始化包括以下形式:(1)在初始化式中,以花括号来限定数组中每一行的值。对于初学者来说,C语言的词汇即关键字,接近于我们使用的自然语言(这里指英语),在某种程度上可以见名知义。下面就让我们通过一个简单的程序来认识和了解C语言。【例1.1】在屏幕上输出一行文字:欢迎使用C语言!对于上述代码,我们需要进行编辑、保存、编译和运行,从而在屏幕上输出相应的文字。编辑代码,必须有一个可以进行文字编辑的软件。Windows操作系统中自带的记事本或者MSWORD等软件,均可以完成代码的编辑与存储功能。在C语言程序设计中,程序代码编写完成后保存在扩展名为“.c”的文件中,该文件即为源程序文件。我们将上述代码保存在Lianxi_1_1.c源程序文件中。由于C语言是高级语言,因此需要将源程序翻译成计算机可以识别的机器语言,也就是要对源程序进行编译。程序在编译成功以后,即可以运行,在屏幕上输出相应的文字。对于初学者来说,C语言的词汇即关键字,接近于我们使用的自然语言(这里指英语),在某种程度上可以见名知义。下面就让我们通过一个简单的程序来认识和了解C语言。【例1.1】在屏幕上输出一行文字:欢迎使用C语言!对于上述代码,我们需要进行编辑、保存、编译和运行,从而在屏幕上输出相应的文字。编辑代码,必须有一个可以进行文字编辑的软件。Windows操作系统中自带的记事本或者MSWORD等软件,均可以完成代码的编辑与存储功能。在C语言程序设计中,程序代码编写完成后保存在扩展名为“.c”的文件中,该文件即为源程序文件。我们将上述代码保存在Lianxi_1_1.c源程序文件中。由于C语言是高级语言,因此需要将源程序翻译成计算机可以识别的机器语言,也就是要对源程序进行编译。程序在编译成功以后,即可以运行,在屏幕上输出相应的文字。(2)省略上式中的限定行的花括号,按元素在内存中的排列顺序依次赋值。(3)当可以通过初值的个数确定数组的长度时,可以不指定行的长度,但列的长度不能省略。(4)若初值个数小于数组的长度,则初始化式中不足的部分默认为0。(5)按初始化式中花括号的限定依次为各行中的元素赋初值,不足的部分默认为0。(6)为某行赋初值0,限定行的花括号不能省略且至少包含一个初值0。(7)当行的个数可以通过初始化式确定时,可以不指定行的长度,但列的长度不能省略。5.3字符数组用来存放字符型数据的数组是字符数组,字符数组中的每个元素在内存中占用一个字节的存储单元,用于存取一个字符。5.3.1字符数组的定义一维字符数组定义的基本格式为虽然也可以定义一个整型数组来存放字符型数据,但会占用不必要的内存空间,因此不建议使用。二维字符数组定义的基本格式为5.3.2字符数组的初始化字符数组的初始化与前面讲过的数值数组的初始化形式类似,常用形式包括以下几种:(1)按元素在内存中的排列顺序,将字符依次赋值给数组中各元素。如果花括号中提供的字符个数大于数组长度,则按语法错误处理。(2)在定义字符数组时,如果为全部元素赋初值,对于一维数组可省略数组长度。(3)如果初始化式中字符个数小于数组长度,则不足的部分默认为空,即字符“\0”。字符数组的初始化与数值数组的初始化形式基本相同,只是初始值为字符常量,由单引号限定。同理,二维字符数组的初始化也与前面介绍的二维数组的初始化形式相同。如果在定义时不对字符数组初始化,则各元素的初始值并不确定。5.3.3字符数组的引用字符数组的引用与前面所讲数组的引用基本一致,唯一的区别是,对于字符数组常使用格式符“%c”来逐个引用数组元素。对于一维字符数组,程序通过一层循环结构完成对每一个数组元素的引用。对于二维字符数组,程序中定义了循环控制变量,通过两层循环嵌套来引用二维字符数组的各元素。在循环结构中,通过判断当前元素的值是否为空字符“\0”来判断当前行中的有效字符是否已经全部输出,并决定是否结束内嵌的循环结构。5.3.4使用字符数组处理字符串C语言中没有字符串数据类型,而是通过字符数组来实现对字符串的处理。所以在C语言中字符串是字符数组,而C语言又规定以字符“\0”作为“字符串的结束标志”,从而将字符串区别于一般的字符数组。在使用字符初始化字符数组时,初始化式由花括号限定且每个初值由单引号限定,字符初值之间用逗号隔开。在使用字符串初始化字符数组时,初始化式的花括号可以省略,整个字符串由双引号限定。同时系统会自动向数组的末端添加一个字符“\0”作为结束标志。因此,使用字符串定义的数组长度为字符串长度再加一个字节。5.3.5字符串的输入/输出在字符串的输入/输出中,经常使用格式符“%s”。相对于格式符“%c”只能够对字符数组的元素进行逐一引用,格式符“%s”最大的特点是可以一次把整个字符串输入/输出。1.以“%s”的形式输出字符数组在格式输出函数printf中使用“%s”时,输出列表的参数不是数组元素(变量),而是数组名(数组的首元素地址)。系统从字符数组的首元素地址开始,将存储单元内的字符依次输出,直到遇见(但不包括)第一个“\0”(空字符)为止。2.以“%s”的形式输入字符数组在格式输入函数scanf中使用“%s”时,输入列表的参数不是变量的地址(或数组元素的地址),而是数组名(即数组的首元素地址)。系统从字符数组的首元素地址开始,将连续输入的字符一次写入存储单元,遇到输入的分隔符(制表符“Tab”、空格“Space”或回车“Enter”)时,在有效字符后自动添加一个“\0”,并结束输入。习惯上,使用“Enter”结束输入。3.以“%s”的形式一次输入与输出多个字符串利用“%s”的特点,可以一次输入与输出多个字符串。在输入时,以空格键“Space”、制表符“Tab”或回车键“Enter”作为一个字符串的结束标志,习惯上,空格键“Space”更符合文本书写的格式。在输出时,需要人为添加字符串之间的分隔符号。5.4字符串输入、输出函数C语言本身没有输入/输出语句,而是在C标准函数库中以标准的输入/输出设备为对象,提供了一系列“标准输入/输出函数”,程序设计人员可以通过调用这些函数来实现特定的输入/输出功能。“标准输入/输出函数”被定义在头文件“stdio.h”中,需要调用“标准输入/输出函数”的源程序文件必须在文件的开头使用预编译指令“#include<stdio.h>”将该头文件包含到源程序文件中。5.4.1puts函数puts函数即字符串输出函数。其作用是以第一个“\0”作为结束标志,将一个字符数组中的有效字符输出到终端,并将“\0”转换为“\n”输出。调用puts函数的一般格式为需要注意的是,puts函数的参数只有一个,所以只能用于输出一个字符数组;若需要输出多个字符数组,则需要调用多个puts函数。5.4.2gets函数gets函数即字符串输入函数。其作用是以回车键“Enter”作为结束标志,将一个字符串输入到字符数组中,并将“Enter”转换为“\0”输入。调用gets函数的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 混凝土承包合同
- 森林防火安全隐患排查整改报告(30篇)
- 《发票管理办法》课件
- 联合生产合同范本模板
- 合同实质性内容具体理解
- 四年级下册第22的教育课件
- 写生闹钟美术课件
- 高一第一学期期末考试英语试卷含答案(共5套-文本版)
- 《脑血管病康复治疗》课件
- 《百变万能》课件
- 2024年国考申论真题(行政执法卷)及参考答案
- 第27章 畸形学概述课件
- 内控案防培训
- 学生矛盾处理协议书(2篇)
- 穿越河道顶管工程施工方案
- 2024年度质量员(设备安装)专业技能复习题库及答案(共四套)
- 【数学】小学四年级口算题大全(10000道)
- 《监理单位工作质量考评手册》装订版
- 河南省部分学校2024-2025学年高一上学期选科考试物理试题(含答案)
- 5-2《巧手饰新年》教学设计
- 事业单位考试大纲题库考点《人文历史》(2023年版)-1
评论
0/150
提交评论