第06章 指针与数组资料.ppt

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
补充:P205 三、阅读程序 1.题 p[0] a[0] p[1] a[3] p[2] a[6] p[3] a[9] 结果为:11 11 11 数组与指针实验 模拟“地雷游戏”。在9*9的方格中,随机布上10个“地雷”,按9行9列输出各格子的数(有雷为9,无雷为0)。在有相邻地雷的格子内进一步标出相邻地雷数。 “布雷”游戏图解 int a[11][11]={0}; 随机布上10个雷 int a[11][11]={0}; int n=10; for(k=1;k<=n;k++) /*随机布10个地雷*/ { i=rand()%9+1; j=rand()%9+1; a[i][j]=9; } 以每个雷为中心,与它相邻的格子都要加1 最极端的: 如果a[i][j]是个雷,则:  if(a[i][j]>8) { a[i-1][j-1]++; a[i-1][j]++; a[i-1][j+1]++; a[i][j-1]++; a[i][j+1]++; a[i+1][j-1]++; a[i+1][j]++; a[i+1][j+1]++; } { a[i-1][j-1]++; a[i-1][j]++; a[i-1][j+1]++; a[i][j-1]++; a[i][j+1]++; a[i+1][j-1]++; a[i+1][j]++; a[i+1][j+1]++; } 剪裁掉边沿后得到9×9矩阵 for(i=1;i<10;i++) { for(j=1;j<10;j++) { if(a[i][j]>8) /*该处是雷*/ printf("%4c",'9'); else printf("%4d",a[i][j]); }… } 输出9×9矩阵的程序实现 最后一个问题:函数调用的参数传递 landmine(a); /*调用landmine函数,实参是数组名*/ void landmine(int a[11][11]) { a[i][j] ……该函数处理的与传过来的是同一数组。 } 例6-8是输出数组的第2行 * *(p[1]+i)等同于*(a[1]+i) * 编译-连接生成.exe文件后,工程-Settings…… Debug-Program Arguments:框中输入命令行参数 Abcdefg 1234 AGDGS 参数间用空格分隔 * 程序设计技术 C语言数据描述和C程序设计初步 结构化程序设计基础和C语言的控制结构 数组及其应用 函数与C程序结构 指针与函数 指针与数组 字符串及其应用 结构体类型和联合体类型 C语言的文件处理及其应用 位运算与枚举类型 指针与数组 指针与数组的关系 指针数组与命令行参数 6.1.1 多级指针 多级指针的概念 可使用地址的不同级别来描述不同空间数据对象的存储首地址,其中一级地址描述线性空间在存储区域的首地址;二级地址描述平面空间在存储区域的首地址; 一级地址、二级地址、多级地址又分别称为一级指针、二级指针和多级指针。 如果一个指针指向的是指针型数据,那么称这个指针为指向指针的指针,又称为多级指针。多级指针所指的对象是另外一个指针。 二级指针变量的定义与引用 存储类别 数据类型 **指针变量名; 例1:int k,*p,**p1; k=5; p=&k; p1=&p; printf(“k=%d”,**p1); p1是一个二级指针变量,它指向一级指针变量p,而p指向整型变量k。通过p1指针变量访问K的写法是**p1,输出k的值为5。 6.1.1 多级指针 k); *p); 100 10000 10300 x y z 二级指针变量的指向关系 变量x的值100 变量x的存储首地址10000 变量y的存储首地址10300 例2:int x=100,*y=&x,**z=&y; *y ? x; *z

文档评论(0)

mbxy007 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档