- 1、本文档共92页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 数组与指针 【学习要求】 掌握:一维数组的定义、初始化和使用方法 掌握:二维数组的定义、初始化和使用方法 掌握:字符数组的定义、初始化和使用方法 掌握:指针变量的定义 掌握:指向数组的指针的定义和使用方法 掌握:冒泡排序原理和顺序查找原理 重点:数组的定义和使用,指向数组的指针的定义和使用 难点:排序原理,指针与数组的关系 §5.1 一 维 数 组 5.1.1 数组的定义 定义:数组是由一组相同数据类型的数据构成的集合,集合中的每一个元素称为数组元素. 数组有一维数组、二维数组和多维数组之分,一维数组的定义格式如下: 数据类型说明符 数组名称[数组元素个数] 几点说明: (1)“数据类型说明符”表明了该数组元素的数据类型。 (2)“数组名称”是用户自定义的标识符,其字符构成要符合C语言标识符的约定。 (3)“数组元素个数”用于指定数组的长度,是一个常量表达式,只能是数值常量或符号常量。 (4)“数据类型说明符”和“数组元素个数”确定了系统编译过程中要为该数组分配的内存单元字节数。 (5)C语言中不允许在程序运行中动态改变数组的大小。 (6)同一段程序内,数组名称不能与变量名相同。 5.1.2 数组元素的引用 必须先定义后使用,只能逐个引用数组元素,格式为: 数组名称[下标] 说明: (1)数组名称是表明要引用哪一个数组中的元素,这个数组必须在此之前已定义; (2)不能一次引用整个数组的所有元素。 (3)下标用一对中括号[]括起来,其值必须是整形常量或整形表达式。 (4)数组元素的下标自0开始,直到数组元素个数减1,如定义了5个元素的整型数组a,其元素下标的取值只能为0、1、2、3、4。 (5)C语言不对数组作超界检查,在程序设计中对数组元素的引用操作必须由人工检查下标,以防止由于数组下标超界而引起错误。 5.1.3 数组的初始化 1. 先定义后赋值 先定义数组,然后再逐个元素进行赋值,这个过程要遵循上一节中关于数组元素引用的规定,如:int a[5];a[0]=10; a[1]=9; a[2]=8; a[3]=7; a[4]=6; 2. 在定义的同时初始化 将定义和初始化过程写在一起,用于在编译阶段使数组元素获得初值。 (1)全部元素初始化。将赋值元素写在一对大括号中,元素之间用逗号分隔。如: int a[5]={1,2,3,4,5}; 等价于a[0]=1; a[1]=2; a[2]=3; a[3]=4; a[4]=5; 5.1.3 数组的初始化 对于为全部元素赋初值的情况,可以省略数组定义中元素的个数。如: int b[]={1,2,3,4,5};表明数组b的元素的个数为5。 (2)部分元素初始化。当大括号中数值的个数少于数组定义时指定的个数时,只给数组前面的一部分元素初始化,而其他元素的数值自动取值为0;如: int a[5]={2,3};则:a[0]=2; a[1]=3; a[2]=0; a[3]=0; a[4]=0; 说明: (1)数组在定义后没有赋值时,各个元素的值是所占用的空间内早先运行其他程序时保留下的数值,并不一定都为0。 (2)不能一次给整个数组赋值,如一个由5个整型元素组成的一维数组,每个元素的数值均为1,如果写成下面的形式: int a[5]=1; 系统编译过程将出错,并提示“Incompatible type conversion in function main(main函数中类型转换不匹配)”。也不能写成int a[5]={1*5}的形式,这样只能是给数组的第一个元素赋初值5,而其他4个元素值为0。必须写成int a[5]={1,1,1,1,1}或a[0]=1; a[1]=1; a[2]=1; a[3]=12; a[4]=1;的形式。 【例5.1】用数组求Fibonacci序列的前15个数。 #include stdio.h void main() { int a[15]={1,1},i; for(i=0;i15;i++) { if(i=2) a[i]=a[i-1]+a[i-2]; printf(%8d,a[i]); if((i+1)%5==0) printf(\n); } } 5.1.4 一维数组的应用实例 【例5.2】利用数组实现十进制数向二进制数的转换。 #include stdio.h void main() { int n,i=0,a[33]; printf(please input a number:); scanf(%d,n); while(n) { a[i++]=n%2; n/=2; }
您可能关注的文档
- 慢性阻塞性肺病(基层医生急需解决的几个问题)资料祥解.ppt
- 慢性阻塞性肺病及护理资料祥解.ppt
- 慢性阻塞性肺疾病患者呼吸困难信念的相关概念及测量资料祥解.ppt
- 毛概复习,客观题资料祥解.ppt
- 毛细支气管炎的护理查房资料祥解.ppt
- 么莉护理分级解读么资料祥解.ppt
- 梅丽曼-小脑出血护理查房2资料祥解.ppt
- 美国非心脏手术患者围手术期心血管疾病评估资料祥解.ppt
- 美国消化道异物处理指南资料祥解.ppt
- 弥散试验及临床应用资料祥解.ppt
- 人教版小学五年级下册数学期末测试卷含完整答案(有一套).docx
- 2025广东东莞东城街道办事处招聘工作人员12人考试备考题库及答案解析.docx
- 2025宜宾市委社会工作部选调市社会工作服务促进中心工作人员3人考试备考题库及答案解析.docx
- 2025四川绵阳北川县考调县城中小学教师46人考试备考题库及答案解析.docx
- 2025年上海市七宝中学附属鑫都实验中学编外教师招聘考试备考题库及答案解析.docx
- 人教版小学五年级下册数学期末卷含答案(完整版).docx
- 人教版小学五年级下册数学期末卷(重点).docx
- 人教版小学五年级下册数学期末测试卷附参考答案(综合卷).docx
- 人教版小学五年级下册数学期末卷含答案(新).docx
- 人教版小学五年级下册数学期末卷附参考答案【夺分金卷】.docx
最近下载
- 悦纳自己——爱自己的100种方式(课件)高一下学期心理健康课(通用版).pptx VIP
- 浙江省消防技术规范难点问题操作技术指南-2025修订稿(定稿).docx
- 再生医学技术:2025年关节软骨修复研究前沿报告.docx
- 《电梯监督检验和定期检验规则》(TSG T7001-2023).docx VIP
- T CNAS 32─2023 注射相关感染预防与控制.pdf VIP
- 罗宾斯组织行为学第18版中文ppt1.pptx VIP
- 浙商中拓(000906)公司2023年财务分析研究报告.pdf
- 食材食品质量问题退换货方案.docx VIP
- 智能找车系统(数字1对1)调试手册.doc VIP
- 工业智能控制.pdf VIP
文档评论(0)