第10章 指针类型.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 让指针变量指向函数 定义了指向函数的指针变量,就可以在指针变量与特定函数之间建立关联,让指针变量指向特定函数。  建立关联的方法为:  指针变量=函数名;  说明:  (1) 指针变量只能指向定义时所指定的一类函数。 (2) 一个指针变量可以先后指向多个不同的函数。 3. 利用指针实现函数调用 指针变量一旦指向某函数,利用指针所指向的变量可以实现函数调用。  调用形式: (*指针变量)(实参表); 例 10 — 18 通过指针调用函数。 /*程序10 — 18, 通过指针调用函数,求两个数的最大值*/ float max(x, y)/*求两个数的最大值*/ float x, y;  {float z;  z=(x=y)?x: y;  return(z);  } main( ) {float (*p)( ); /*定义指向一类实型函数的指针变量*/ float a, b;  float m;  scanf(″%d, %d″, a, b);  p=max; /*建立关联*/ m=(*p)(a, b); /*利用指针实现函数调用*/ printf(″a=%d, b=%d, max=%d\n″, a, b, m);  } 10.3.3 字符指针变量和字符数组的区别 (1) 字符数组由若干个元素组成,每个元素中存放字符串的一个字符,而字符指针变量中存放的是字符串的首地址。  (2) 初始化方式不同。对字符数组初始化要用static存储类别,在编译时进行。而对字符指针变量初始化不必加static,在实际执行时进行。  (3) 赋值方式不同。对字符数组不能整体赋值,只能转化成份量,对单个元素进行。而字符指针变量赋值可整体进行。例如:  char s[10];  s=″C++″; /*错, s是常量, 怎能被赋值*/ (4) 在定义一个字符数组时,编译时即已分配内存单元,有确定的地址。而定义一个字符指针变量时,给指针变量分配内存单元,但该指针变量具体指向哪个字符串,并不知道,即指针变量存放的地址不确定。例如: char s[10];  char *p;  scanf(″%s″, s); /*正确*/ scanf(″%s″, p); /*非常危险, p的值动态*/ (5) 字符指针变量的值可以改变,字符数组名是一个常量,不能改变。例如,有简单程序: main( ) {char *s=″china man″;  s+=6;  printf(″%s″, s);  } 运行结果: man 10.4 指针与结构体 10.4.1 指向结构体数据的指针变量 对使用指针来处理数据读者应有了一些体会,即先定义一以数据或元素类型为基类型的指针变量;其次在定义的指针变量与要处理的数据之间建立关联,让指针变量指向要处理的数据;然后引用指针指向变量来完成数据的处理。 例 10 — 13 指向结构体变量的指针变量的应用示例。  假设有一结构体,包含某人的姓名和年龄,用指向结构体变量的指针变量完成输出处理。  程序如下: /*程序10 — 13, 指针应用于结构体*/ main( ) {struct person {char *name;  int age;  } someone; struct person *p; /*定义结构体类型的指针变量*/ someone.name=″张三″; /*假定姓名为张三*/ someone.age=20;  p=someone; /*建立关联, *p即someone*/ printf(″姓名=%s, 年龄=%d\n″,(*p).name,(*p).age); /*等价于printf(″姓名=%s, 年龄=%d\n″,someone.name,someone.age); */ } 运行结果: 姓名=张三, 年龄=20 运行结果:姓名=张三,年龄=20 说明:

文档评论(0)

精华文档888 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档