




已阅读5页,还剩18页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计技术 C语言数据描述和C程序设计初步结构化程序设计基础和C语言的控制结构数组及其应用函数与C程序结构指针与函数指针与数组字符串及其应用结构体类型和联合体类型C语言的文件处理及其应用位运算与枚举类型 指针与函数 指向函数的指针返回指针值的函数 指向函数的指针 指向函数指针变量的定义用指向函数的指针变量来调用函数指向函数的指针变量作函数参数 5 1 1指向函数指针变量的定义 指向函数的指针变量 简称函数指针 每一个函数都是一个程序模块 这个模块在内存中都占有一片存储区 函数名代表了该存储区的首地址 称为函数的入口地址 定义一个指针变量并且使它指向函数的入口地址 就称这个指针变量为指向函数的指针变量 指向函数的指针变量的定义 指针变量名 形参表 存储类别函数指针变量本身的存储特性 数据类型指针指向的函数的返回值类型 给指向函数的指针变量赋值 指向函数的指针变量 函数名 函数指针的调用格式 函数指针变量 实参表 指向函数的指针 指向函数指针变量的定义用指向函数的指针变量来调用函数指向函数的指针变量作函数参数 定义指向函数的指针变量后 就可将一个函数名赋给该指针变量 此后 对该指针变量的指针运算就是使程序控制转移到指针指向的函数入口地址去执行该函数的函数体 例如 有函数说明为 voidswap intx inty 指向函数的指针变量定义 void fp intx inty 将函数名swap赋给函数指针变量fp fp swap 使用函数指针变量fp调用函数swap的形式 fp a b fp a b 5 1 2用指向函数的指针变量调用函数 例5 1编程序计算下面的公式 其中n从键盘输入 要求使用指向函数的指针变量来实现 5 1 2用指向函数的指针变量调用函数 5 1 2用指向函数的指针变量调用函数 根据以上算法描述写出程序代码如下 includedoublef1 intx f2 intx voidmain double fp intx 定义指向函数的指针变量fp intn printf inputn scanf d 5 1 2用指向函数的指针变量调用函数 6 6 doublef1 intx intk doublevalue 1 0 for k 2 k x k k 2 value value 1 0 k 1 0 k returnvalue doublef2 intx intk doublevalue 1 0 for k 3 k x k k 2 value value 1 0 k 1 0 k returnvalue 5 1 2用指向函数的指针变量调用函数 6 1 1 0 22 1 0 42 1 0 62 指向函数的指针 指向函数指针变量的定义用指向函数的指针变量来调用函数指向函数的指针变量作函数参数 5 1 3指向函数的指针变量作函数参数 程序中如何设计通用方法主要解决两个问题 如何用C语言描述解决某种问题的通用方法如何将具体问题与解决问题的通用方法联系通用方法可应用于求解高阶方程的根 求多元方程组的解 求函数的定积分等 函数指针的作用主要在程序的函数之间传递函数 即把一个函数的地址作为参数从一个函数传递到另外一个函数 一般主调函数的实参应当是被传递的函数名 而被调函数的形参应该是能接收函数地址的函数指针 指向函数的指针变量 5 1 3指向函数的指针变量作函数参数 例5 5利用已有的通用函数按给定条件求定积分 其中确定精度的等分数从键盘输入 1 求函数f1 x 1 x 在区间 0 2 的定积分 2 求函数f2 x 1 1 4x2 在区间 1 1 的定积分求定积分的方法 矩形法 梯形法 辛普生法 以梯形法为例 设计求定积分的通用函数步骤 将区间 a b 划分为n等分 等分数取决于所求精度 计算出所有等分点的函数值f xi 连接相邻两个等分点的函数值 将所求曲边四边形区域用若干个小的梯形代替 按公式求出所有小的梯形面积 然后求和得到曲边四边形面积的近似值 用求梯形面积的方法计算某区间的定积分将 a b 区间n等分 则梯形的高h b a n求梯形面积的计算公式 S f Xi f Xi 1 h在X轴除a b点外 其余点的函数值都加了两次 既是一个梯形的上边 又是另一个梯形的下边 仅有a b点的函数值f a 或f b 只为某梯形的上边或下边 故程序特殊处理为 a和b点 area f a f b 2i取1 n 1点 area area f a i h 5 1 3指向函数的指针变量作函数参数 5 1 3指向函数的指针变量作函数参数 按梯形法求定积分的通用函数collectdoublecollect double p floatx floata floatb intn inti floatf h area h b a n X轴等分区间的长度 高 area p a p b 2 0 y轴 f a f b 2 for i 1 i n i area p a i h f X1 f X2 f Xn 1 returnarea h 使用被积函数名 积分下限和积分上限 等分数作为实参在主调函数中调用求定积分通用函数 调用指针变量所指的函数 函数指针为形参 include include ex05 04 cpp 通用函数包含到本源文件中 doublef1 doublex 被积函数的原型声明 doublef2 doublex voidmain doubley1 y2 intn printf Inputnumberofsections scanf d 5 1 3指向函数的指针变量作函数参数 doublef1 doublex 被积函数1 x的C语言描述 doublef f 1 x returnf doublef2 doublex 被积函数1 1 4x2 的C语言描述 doublef f 1 1 4 x x returnf 5 1 3指向函数的指针变量作函数参数 调用过程中的参数传递 C程序的控制结构 指向函数的指针返回指针值的函数 5 2 1返回指针值函数的定义和调用 一般函数的返回值可以是整型 实型 字符型等基本数据类型 也可是空类型 void 或其它用户自定义数据类型 如果函数在调用后返回一个指针值 地址 这种函数称为返回指针值的函数 返回指针值函数的头定义 形式参数表 注意区别以下定义float func floatx floaty 返回指针值的函数float fper floatx floaty 指向函数的指针变量返回指针值函数的调用函数的返回值只能赋给相同数据类型的指针变量 例5 6用静态局部变量和返回指针函数求 includelong fac longn Voidmain longn i sum 0 pi printf Inputn scanf ld long fac longn staticlongp 1 p p n return 5 2 1返回指针值函数的定义和调用 sum fac i 1 2 6 3 2 6 9 2 3 1 1 1 1 1 2 1 2 3 2 3 不能把自动变量的地址作为函数的返回值例5 7返回自动变量地址值的错误程序 includevoidmain int fun intnum count for num 1234 num 1 num if num 3 0 count fun printf count d n count int fun inti i return 5 2 1返回指针值函数的定义和调用 存储分配函数malloc 在头文件stdlib h中 原型 void malloc size t 功能 在内存的动态存储区分配由size t所指定大小的存储块 返回该存储块的地址 指针 返回指针类型为void 空类型 程序中应根据需要将它转换为所需的任何类型 如果存储器中没有足够的空间分配 即当存储分配失败时返回值为NULL 存储释放函数free 在头文件stdlib h中 原型 voidfree void memblock 功能 释放由指针变量memblock指明首地址 并由malloc函数动态分配的存储块 例5 8使用malloc和free函数的示例1 5 2 2存储分配标准库函数和动态变量 使用malloc和free函数的示例2 include incl
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 书法天地二教学设计-2023-2024学年初中书法练习指导八年级上册川教版
- 2025租赁合同偏向甲方
- 2025合同范本(办公设备)
- 2025年北京市存量房屋买卖合同(自助成交版)
- 2.4 向量的坐标表示说课稿-2025-2026学年中职基础课-拓展模块一 上册-高教版(2021)-(数学)-51
- 1.1 数列的概念(1) 教学设计-2024-2025学年高二上学期数学湘教版(2019)选择性必修第一册
- 橡胶厂文件管理规范制度
- 湖南省益阳市资阳区九年级化学下册 第九单元 课题2 溶解度说课稿 新人教版
- 宁波事业单位笔试真题2025
- 2025先进纳米材料研发合同
- 养老护理员四级考试题库及答案
- 建筑工程质量控制体系
- 中国电子科技集团公司第三十六研究所新能源、电子项目(二期)环评报告
- 工艺验证检查指南2025
- 临床教学中的情感教育PBL教学法的探索与实践
- 建筑工程碳排放计量指南
- 安全生产大检查方案
- 《劳动教育》 课件 专题一端正劳动态度 第四节 劳动最美丽
- 备考2025年成人高考-专升本-政治考点及必背知识点大全
- 小儿疝气科普知识
- 变电站电气设备巡视-变压器巡视(变电站电气运行)
评论
0/150
提交评论