- 1、本文档共17页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c语言程序设计05_数组
数组 构造数据类型 数组 5.1.1一维数组的定义 一维数组的一般定义形式为: 类型标识符 数组名[整型常量表达式]; 例如: int a; int b[l0]; 注意事项: 数组名属于标识符,应遵循标识符命名规则。 数组名作为变量名不能与其它变量名相同。 数组的大小必须由常量或常量表达式定义 数组名如果出现在表达式中,它的值和含义是该数组首个元素的地址,是一个指针型常量。 数组名+n的值是数组中第n+1个元素的地址。 对数组名取地址,得到是整个数组的地址,其值虽然与数组首个元素地址值相同,但类型不同、含义不同。 【例5.1】求变量int a和int b[10]占用内存的大小: 【例5.2】求变量的值、变量地址的值、数组名的值、数组名的地址: 【例5.3】求变量地址的值和加1后的值: 5.1.2 一维数组元素的引用 下标法引用一维数组元素,形式如下: 数组名[下标] 注意事项: (1)一个数组元素实质上就是一个变量,代表内存中的一个存储单元,与相应类型的变量具有完全相同的性质。 (2)一个数组不能整体引用。 (3)C语言编译器并不检查数组元素的下标是否越界,即引用下标值范围以外的元素,如上例的a[10],编译器不提示出错信息。但在程序运行时可能引起程序运行错误,所以应避免数组操作越界。 【例5.4】下标法数组元素使用示例。 指针法引用数组元素,形式如下: *(数组元素地址) 【例5.5】指针法数组元素使用示例。 5.1.3 一维数组的初始化 指针法引用数组元素,形式如下: *(数组元素地址) 初始化赋值的一般形式为: 类型标识符 数组名[整型常量表达式]={初值表}; 其中,在{}中的各数据值即为数组各元素的初值,各值之间用逗号间隔,给定初值的顺序即为在数组元素在内存中的存放顺序。 【例5.6】数组初始化示例。 一维数组的几种初始化情形 完全初始化 部分初始化 省略数组长度的完全初始化 5.1.4 程序举例 【例5.7】从键盘上给数组输入10个整数,求出该数组的最大值及最大值的下标并输出。 【例5.8】用冒泡排序法对数组中的元素进行从小到大进行排序。 冒泡排序算法说明 5.2.1 多维数组的定义 在C语言中,从二维到多维数组本质上都是一维数组的扩展。 【例5.9】定义一个由4个元素组成,而这4个元素又分别是由3个整型变量组成的二维数组: int a[4][3]; 注意事项: 二维数组名如果出现在表达式中,它的值及其含义是该数组首个元素的地址。 数组名+n的值是数组第n+1个元素的地址。 对数组名取地址,得到的是整个数组的地址。 【例5.10】定义三个指针变量p1、p2、p3,分别保存例5.9中定义的a、a[0]、a[0][0]的地址 【例5.11】求数组元素占用内存的大小: 【例5.12】求变量地址的值和加1后的值 5.2.2 多维数组元素的引用 多维数组的引用方式与一维数组的引用方式基本相同,可以使用指针也可以使用下标 【例5.13】多维数组元素的引用 【例5.14】下标法输入、输出二维整数组。 【例5.15】指针法输入、输出二维整数组。 【例5.16】指针法输入输出二维数组的各元素。 5.2.3 多维数组的初始化 初始化一般形式为: 类型 数组名[整型常量表达式1][整型常量表达式2] [整型常量表达式3]={初值表}; 多维数组的初始化方法。 完全初始化 部分初始化 省略数组长度的完全初始化 。 5.2.4 程序举例 【例5.17】编程实现矩阵的转置(即行列互换)。 【例5.18】编程分别求矩阵的两个对角线上元素值之和。 5.3.1 字符数组与字符串的关系 字符数组与字符串的关系 以字符串的方式处理文字信息主要好处: 可以知道有效字符的长度 有大量的字符串库函数可以使用 赋初值简便 【例5.19】输出一个字符数组中每个元素的ASCII码 注意事项: 使用C语言本身的字符串功能或C库函数提供的字符串处理功能,用户提供的必须也是字符串,即有效字符后面要有’\0’做结束标志。 使用C语言本身的字符串功能或C库函数提供的字符串处理功能,返回的结果也都是字符串,即有效字符后面都有’\0’ 做结束标志。 用户定义的用来保存字符串的字符数组必须要大于被处理的字符串的长度,使用C语言本身的字符串功能或C库函数提供的字符串处理功能都不检查字符数组大小与字符串长度是否匹配。 字符串的长度不包括字符串末尾的’\0’,所以保存字符串的字符数组中长度要大于等于字符串的长度加1。 5.3.2 字符串的输入输出 使用scanf函数输入字符串 【例5.20】scanf输入字符串 使用printf函数输出字符串 【例5.21】printf输出字符串 使用gets函数输入字符串、 【例5.22】ge
您可能关注的文档
- chap2系统和信息系统.ppt
- chap4_2循环结构程序设计.ppt
- chap22_离散时间信号的时域分析.ppt
- chap3晶体定向及晶面符号chap4单形及聚形1.ppt
- chapter02数据类型_运算符和表达式.ppt
- chap2会计要素和其确认计量原则.ppt
- chap01_01_php5基础知识.ppt
- chap4抽象_封装和类.ppt
- chapter001_第1章电路的基本概念与基本定律.ppt
- Chapter06_流动资产评估.ppt
- 小学科学:ESP8266智能插座电路原理与动手实践研究教学研究课题报告.docx
- 《金融开放浪潮下我国多层次监管体系构建与创新研究》教学研究课题报告.docx
- 区域教育质量监测中人工智能应用的数据质量分析与优化策略教学研究课题报告.docx
- 《金融科技监管中的数据治理与合规性要求》教学研究课题报告.docx
- 《3D打印技术在航空航天领域中的多材料制造与复合材料应用》教学研究课题报告.docx
- 《绿色金融发展中的政府职能与市场机制研究》教学研究课题报告.docx
- 《植物工厂多层立体栽培光环境调控技术对植物生长发育节律的调控机制探讨》教学研究课题报告.docx
- 销售团队年度业绩总结.docx
- 银行风险管理与金融危机防范.docx
- 银行网络攻击预警与快速响应机制.docx
文档评论(0)