- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言程序设计课件myself优秀讲义
C语言程序设计 第十章 二维数组与指针 内容提要 本章介绍二维数组的有关知识: 二维数组的定义,其中涉及的3种类型 二维数组的初始化 二维数组的元素访问方式 与二维数组相关的各类指针: 行指针 列指针 二级指针 一维指针数组 动态二维数组空间的申请与释放(选讲) 如何利用二级指针申请动态二维数组空间 如何依次释放申请的所有动态空间 二维数组的定义 二维数组的定义形式: 类型 数组名[整型常量表达式1][整型常量表达式2]; 例:int a[2][3];//定义2行3列的整型二维数组,数组名为a a[0]--- a[0][0]、a[0][1]、a[0][2] a a[1]--- a[1][0]、a[1][1]、a[1][2] 二维数组的定义 二维数组的实质分析: (1)这里,a是二维数组名,也可以理解成是一维数组名a,它有2个元素,分别为a[0]、a[1] (2)a的2个元素不是普通的变量,而是都分别是一维数组,称为行一维数组,每一个都有3个int型元素,例:a[0]的3个元素为:a[0][0]、a[0][1]、a[0][2] (3)因此,二维数组a中共有6( 2*3 )个int型的元素: (4)存放顺序:以行优先方式存放。先顺序存放第0行的元素再存放第1行的元素,以此类推。 二维数组的定义 二维数组定义中的常量与变量: 例:int a[2][3]; (1)二维数组a和行一维数组a[0]~a[3]均为指针常量 (2)二维数组元素a[0][0]~a[1][2]是int型的变量 二维数组的初始化 二维数组在定义的同时可为其元素赋值,称为初始化,原则:行从左到右依次,每行中列从左到右依次 (1)逐行初始化: int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; (2)行数可以缺省,列数不能省,自动算行 : int a[ ][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; (3)不分行,用类似一维数组的方式初始化: int a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}; (4)初始化数据不足,系统用0补充: int a[4][3]={{1,2},{4,5},{7,8,9},{10,11,12}}; (5)最简单的初始化: int a[4][3]={0}; 二维数组的初始化 错误的初始化示例: (1)未遵守行从左至右依次初始化原则: int a[4][3]={ ,{4,5,6},{7,8,9},{10,11,12}}; (2)同一行中未遵守列从左至右依次初始化原则: int a[4][3]={{1, ,3},{4,5,6},{7,8,9},{10,11,12}}; int a[4][3]={{1,2,3},{,5,6},{7,8,9},{10,11,12}}; (3)不分行,用类似一维数组的方式初始化,未按顺序: int a[4][3]={1,2, ,4, ,6,7,8,9,10,11,12} ; (4)省略列号: int a[4][ ]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; 二维数组元素的访问 a[0][0] a[0] a[0][1] a[0][2] a[1][0] a[1] a[1][1] a[1][2] 二维数组元素的访问 二维数组元素的访问 一般要对所有的数组元素执行同样的操作,与一维数组类似,用循环结构控制,二维数组需用两层循环 例:int a[4][3],n=1; for(int i=0;i4;i++) for(int j=0;j3;j++) a[i][j]=n++; 程序10.1 将如下所示的矩阵存入二维数组,然后照原样输出,最后按转置形式输出。 算法提示:转置输出不需要另外定义二维数组,只是在控制循环时先控制列下标再控制行下标 二维数组与行指针 二维数组要传址,可以传递二维数组指针 二维数组指针的基类型由二维数组元素类型和列数两部分联合表示 因此,接受二维数组指针的指针变量,其基类型也应该由两部分联合表示,而且对应的部分完全一致,这样的指针变量称为行指针变量 例:int (*p)[3]; //二级指针变量p int a[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}}; p=a; //将二维数组指针赋值给行指针变量 此时行指针变量p等价于二维数组指针a,有以下等价式: p+i= =a+i p[i]= =a[i] p[i][j]= =a[i][j] 二维数组的行指针
您可能关注的文档
最近下载
- 数码摄像机-松下-AJ-D965MC说明书.pdf VIP
- 2024年巡察整改专题民主生活会个人“聚焦四个方面”对照检查材料范文2篇.docx VIP
- 人工智能对文化产业的推动.pptx VIP
- 人教版(2024)七年级上册英语教学计划(含教学进度表).docx
- 软件的项目可行性的研究的报告编写.ppt VIP
- 一种用于处理高硫高砷金矿的提金剂及其制备方法.pdf VIP
- 中国甲状腺疾病诊治指南ppt.pptx VIP
- 《中国抗癌协会甲状腺癌整合诊治指南(2022精简版)》解读PPT课件.pptx VIP
- 一种澳洲坚果种质热敏感等级的精准诊断及其缓解新梢叶片热伤害的方法.pdf VIP
- 全球常见传染病防控概述.pptx VIP
文档评论(0)