《C语言程序设计》第5章---数组、字符串、指针.pptVIP

《C语言程序设计》第5章---数组、字符串、指针.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.求最大元素及其所在的行和列 编程基本思路与在一维数组求最大值元素相同,row, column存放最大值所在行列号。 3. 矩阵的转置(方阵) 对比一维数组的倒置,注意: 哪些元素要交换? 和谁交换? a[0][0] a[0][1] a[0][2] a[0][3] a[1][0] a[1][1] a[1][2] a[1][3] a[2][0] a[2][1] a[2][2] a[2][3] a[3][0] a[3][1] a[3][2] a[3][3] 如果不是方阵,则要定义另一个数组。 b[j][i] = a[i][j] 5.3.6 多维数组的声明和引用 在处理三维空问题等其它复杂问题时要使用到三维及三维以上的数组,通常把三维及三维以上的数组称为多维数组。 定义多维数组的格式如下: 类型符 数组名[常量1][常量2][常量3]…; 例如: int a[5][5][5]; /* 声明a是三维数组*/ float b[2][6][10][5]; /* 声明b是四维数组*/ 注意:操作多维数组常常要用到多重循环。 2.6 指针变量 2.6.1 地址与指针的概念 数据存放在内存中,每个字节内存单元按顺序编号,称为“内存地址”。 通过内存单元的地址即可准确地找到该内存单元。 变量的地址就是变量的指针 5 x 2003 变量名 变量值 变量地址 p 指针变量 2.6.3 指针变量的定义 指针变量定义的一般形式: 类型符 *标识符; 说明: “*”直接修饰的“标识符”是指针变量。 int *p,x; /* p是指针变量,x是整型变量 */ 指针所指对象的类型称为指针的基准类型。 int *p1; /* p1的基准类型为整型,即p1所指向对象的类型是整型 */ char *p2; /* p2的基准类型为字符型,即p2所指向对象的类型是字符型 */ 2.6.4 指针变量的初始化 #include stdio.h void main() { int *p; *p =5; printf(*p=%d\n,*p); } 错误代码:可能引起严重后果 不定值 p 指向不可预料的内存空间 *p 可以表示p变量所指的变量 初始化指针变量的方法主要有以下3种: int a,*p; p=a; int a, *p1,*p2=a; p1=p2; 使用malloc函数或calloc函数,给它们分配一个自由的内存空间地址。 a p a p1 p2 2.6.5 指针变量的访问 格式为: *指针变量 例:int a=5, *p=a; a为整型变量,变量里存放的是5 p为指针变量,变量里存放的是变量a的地址 a表示变量a的地址 *p表示变量p所指向的变量,即5 a p a 5 *p p+1 p-1 ++ --运算 5.4 数组与指针 5.4.1 一维数组与指针 1、使用指针引用数组元素 系统给一个一维数组在内存中分配的一片连续存储空间,C语言规定其数组名就是数组在内存中的首地址。 使用指针引用数组元素的准备工作: int a[10], *p /*定义数组与指针变量* / 做赋值操作: p = a; p = a[0]; 两种方法效果完全一样 使用指针引用数组元素 使用指针变量p指向数组a: 方法一: int a[10], *p; p=a; 方法二: int a[10], *p=a; a[0] a[1] a[2] . . . a[i] . . . a[9] p p+1或a+1 p+2或a+2 p+i或a+i p+9或a+9 a数组 注意:指针变量p的运算 *(p+0) *(p+1) *(p+2) *(p+i) *(p+9) 说明: p+i指向元素a[i] 使用指针法引用一维数组的第i个元素的方法: 使用指针变量*(p+i)访问元素a[i]。 使用数组名*(a+i)访问元素a[i]。 指向数组的指针变量也可以带下标,即: p[i]与*(p+i)等价,表示元素a[i]。 例子:方法一分析 int i,imax,max,a[N]; for(i=0;iN;i++) scanf(%d, a[i] ); max = a[0]; imax= 0; for(i=1;iN;i++) if ( a[i] max) { max = a[i] ; imax = i; } printf(“Max:a[%d]=%d\n,imax,max); *(a+i) *(a+i)

文档评论(0)

文库创作者 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档