C语言 第8章 构造数据类型(指针2)(指针与函数).ppt

C语言 第8章 构造数据类型(指针2)(指针与函数).ppt

  1. 1、本文档共62页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
例:求一维数组中下标为偶数的元素之和。 分析: 1、定义数组,从键盘接收数据; 2、定义相关变量,对数组进行求和; 3、输出结果。 * * * * 解法一:主函数中完成算法,使用下标法引用数组元素。 * 解法二:主函数中完成算法,用指针法引用数组元素。 * 解法三:实参是数组名,形参是数组名,调用函数。 * 解法四:实参是数组名,形参是指针变量,调用函数。 * 解法五:实参是指针变量,形参是数组名,调用函数。 * 解法六:实参是指针,形参是指针变量,调用函数。 * * 本章主要内容 1、概述-------地址的概念 2、指针与变量-----指针作为函数的参数 3、指针和数组------指针运算,指向数组的指针 4、指针与字符串------用指针处理字符串 5、数组、指针作为函数的参数 1、数组元素作为参数;2、数组名作为参数 3、指针变量与数组名作为参数 6、指针与函数 1、返回指针的函数;2、指向函数的指针 7、指针数组----指针变量的数组 第六节 指针与函数 * 返回指针值的函数 用指向函数的指针变量调用函数 用指向函数的指针变量作函数的参数 1. 返回指针值的函数 函数的返回值可以是指向基本数据类型的指针类型。 定义形式如下: 类型说明符 * 函数名(参数表) { 函数体 } * 例: int *search(int *x,int n) { int *p; p = x+n; return p; } *search(x,n)等价*(search(x,n)); 函数名为search; 函数的返回值为指向整型的指针。 * 2.函数的指针----指向函数的指针 一个函数在内存中占一片存储空间 。 在函数被编译时,被分配给一个入口地址,这个入口地址就称为函数的指针。 函数名是函数的地址常量值; 可以用一个指针变量指向函数;指向函数的指针变量中的值是函数的首地址。 可以使用指向函数的指针变量代替函数名来调用这个函数。 * 函数的指针的定义 类型说明符 (*指针变量名)( ); 例: int (*p)( ); 意味着:定义了一个指向函数的指针变量p,函数的返回值是整型。 注意! 与 int *p( );的区别 * 此时函数的调用形式: (*指针变量)(实参表列); 例: (*p)(a,b); (*p)为函数名; p 为指向函数的指针; 例:求a,b中的最小者。 * 例:求a,b中的最小者,使用函数指针 * 指向函数 调用函数 3.用函数的指针作参数 可以用指向函数的指针变量作为被调用函数的参数; 由于指针变量是指向某一函数的,所以先后使指针指向不同的函数,就可以在被调函数中调用不同的函数。 * 例: 设一个函数 process,在调用它的时候, 每次实现不同的功能。 (1)求a和b之和。 (2)求a,b中大者。 (3)求a,b中小者。 分析(1) 函数名作实在参数; (2)process的形参中,定义一个指向函数的指针。 * 说明 用指向函数的指针作函数参数的优越性在于能在调用一个函数过程中执行所指定的函数,从而增加处理问题的灵活性。 在处理不同函数时,process函数本身并未改变,而只是改变了调用它的实参。如果将另一个函数传给process,只需改变一个实参值即可。 * * 本章主要内容 1、概述-------地址的概念 2、指针与变量-----指针作为函数的参数 3、指针和数组------指针运算,指向数组的指针 4、指针与字符串------用指针处理字符串 5、数组、指针作为函数的参数 1、数组元素作为参数;2、数组名作为参数 3、指针变量与数组名作为参数 6、指针与函数 1、返回指针的函数;2、指向函数的指针 7、指针数组----指针变量的数组 第七节 指针数组 * 1、指针数组的定义 2、指针数组的初始化 3、指针变量 1. 指针数组的定义 格式: 类型标识符 *数组名[常量表达式]; 例: int *a[4]; 定义了一个有4个元素的一维数组; 数组的每个分量都是一个指向整型的指针; int *a[4]; 等同于 int *(a[4]); * 注意: [ ] 的运算优先级高于 *, 如果写成 int (*a)[4]; 定义了一个行指针变量 a,指向有 4 个元素的一维数组。 * 1. 指针数组的定义

文档评论(0)

187****5045 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档