教学课件:《C语言》张保丰.ppt

  1. 1、本文档共368页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例8.14 设一个函数process,在调用它的时候,每次实现不同的功能。输入a和b两个数,第一次调用process时找出a和b中大者,第二次找出其中小者,第三次求a与b之和。 #include stdio.h void main() { int max(int,int); int min(int,int); int add(int,int); void process (int , int , int(*fun)( );   int a,b;   printf(“enter a and b:”);   scanf(“%d,%d”,a,b);  printf(“max=”); process(a,b,max);  printf(“min=“); process(a,b,min);  printf(“sum=“); process(a,b,add);} int min(int x, int y) { int z; if(xy) z=x;  else z=y;  return(z); } int max(int x,int y) { int z; if(xy) z=x; else z=y; return(z); } void process(int x,int y,int (*fun)(int,int)) { int result; result=(*fun)(x,y); printf(“%d\n”, result); } int add(int x,int y) { int z; z=x+y; return(z);} 第九章 9.1 概述 问题定义: 有时需要将不同类型的数据组合成一个有机 的整体,以便于引用。如:一个学生有学号/姓名/性 别/年龄/地址等属性。 int num; char name[20]; char sex; int age; char addr[30]; 应当把它们组织成一个组合项,在一个组合项中包含 若干个类型不同(当然也可以相同)的数据项。 C语言提供了这样一种构造数据类型—结构体(structure) 结构体是一种复杂的数据类型,是数目固定,类型不同的 若干有序变量的集合。 思考:下列表达式是何含义? *p *a 等价于 p a 如有:int a=2,*p=a,*q=a; printf(“%d %d\n”,*p++,*(q++)); p=a;q=a; printf (“%d %d\n”,*p, (*q) ++); 8.4 指针与数组 数组的指针指数组的起始地址,数组元素的指针是指数组元素 在内存中的起始地址。 8.4.1 指针与一维数组 1.数组的指针 假设定义 int a[10]; (1)数组名a代表数组的首地址,也就是指向此数组第一个元素a[0]的指针。 (2) 数组元素的地址可以用“基地址+位移”的方式处理,即a+i。 (3)表示数组元素的内容可以用*a,*(a+i)表示。 2.指向数组的指针变量 假设定义 int a[10]; int *p; (1)若执行p=a;则指针变量p指向数组a的首地址;等价于p=a[0]; (2) 若执行p=a[i]; 则p指向数组a的第i号元素。 (3)若p指向数组的某一个元素,则p+1就指向同数组的下一个元素,因此数组元素的地址可以用“基地址+位移”的方式处理,若p=a;则表示表示下表为i的元素地址可用p+i。 (4)表示数组元素的内容可以用*p,*(p+i)表示。 3.数组元素的引用 若有定义 int a[10],*p=a; 则数组a中元素的访问方式包括以下两种方法: (1)下标法 数组名下标法: a[i]; 指针变量下标法: p[i]; (2)指针法 数组名指针法: *(a+i) 指针变量指针法:*(p+i) 例8.3 数组元素的使用 用指针变量可以指向一维数组中的元素,也可以指向多维数组中的元素。但在概念上和使用上,多维数组的指针比一维数组的指针要复杂一些。 1.二维数组元素的地址 先回顾一下多维数组的性质,可以认为二维数组是“数组的数组”,例 : 定义 int [3][4]={{1,3,5,7},{9,11,13,15},{17,19,21,23}}; 8.4.2 指针与二维数组 我们可以把二维数组看作是一种特殊的一维数组:它的元素又是一个一维数组。 例如:可以把a看作是一个一维数组,它有3个元素:a[0]、a[1]、

文档评论(0)

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

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

1亿VIP精品文档

相关文档