大学计算机程序设计基础(C语言5)ppt课件.ppt

大学计算机程序设计基础(C语言5)ppt课件.ppt

ID:58808512

大小:838.50 KB

页数:112页

时间:2020-10-01

大学计算机程序设计基础(C语言5)ppt课件.ppt_第1页
大学计算机程序设计基础(C语言5)ppt课件.ppt_第2页
大学计算机程序设计基础(C语言5)ppt课件.ppt_第3页
大学计算机程序设计基础(C语言5)ppt课件.ppt_第4页
大学计算机程序设计基础(C语言5)ppt课件.ppt_第5页
资源描述:

《大学计算机程序设计基础(C语言5)ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、程序设计基础(国家级精品课)张长海程序设计基础(国家级精品课)第十三章若干深入问题第十三章若干深入问题函数函数指针函数作参数间接递归函数副作用运算赋值顺序表达式条件表达式位运算作业:13.613.7语句breakcontinuefor的延伸goto和标号数据组织多维数组与指针位段共用体存储类别编译预处理§13.1函数本节讲述有关函数的一些深入内容,包括:函数指针、函数作参数、间接递归、函数副作用等。§13.1.1不定方向的数组排序——函数指针【例13.1】编函数,对给定整数数组排序,递增或递减按给定参数决定。【例13.1】编函数,对给定整数数组排序,递增或递减按给定参数决定

2、。boolascending(inta,intb){returna>b;}/*具体说明函数*/booldescending(inta,intb){returna

3、和不加“&”意义相同*/for(pass=0;passb;函数descending判断是否a

4、g或descending赋值给函数指针变量ad。通过调用ad所指向的函数,判断是否需要交换数组两个相邻成分。当需要交换时,调用函数swap。经过多次扫描,最终达到排序目的。函数sort使用了指向函数的指针调用函数ascending或descending。运行结果演示在数组与指针一节中曾指出数组名表示数组首地址,若将数组名赋值给一个类型兼容的指针变量,那么这个指针变量也指向这个数组。同样函数名也具有上述相同的特性,即函数名表示函数控制块的首地址,函数控制块中包括函数入口地址等信息。如果用一个指针变量来标识函数控制块的首地址,则称这个指针变量为指向函数的指针变量,简称指向函数的

5、指针、函数指针。函数指针声明形式是:类型符(*标识符)(形式参数表);其中标识符是被声明的“指向函数的指针变量”名;类型符给出函数指针变量所指向函数的类型信息;形式参数表给出函数指针变量所指向的函数的形式参数信息。例如int(*f)(floatd,charc);声明指向“返回int类型值的函数”的函数指针变量f,f所指向的函数有两个形式参数:第一个参数是float类型,第二个参数是char类型。函数指针声明中用括号把星号“*”和“标识符”括起来是必须的,比如上述的“(*f)”,原因是由优先级造成的。引进函数指针概念不是凭空臆造的,它的作用在于使用函数指针调用函数实现其它程序

6、设计语言中函数参数的功能可以把函数名赋值给一个函数指针变量,然后通过函数指针变量调用函数。形式是:函数指针变量=函数名;要求函数指针的特性与函数名的特性一致,这种一致性体现在它们的返回类型相同;它们的参数个数相同;对应位置上,每个形式参数的类型相同。使用函数指针要注意:给函数指针赋值时,右端只是一个函数名,不许带参数表。ad=ascending是正确的,而ad=ascending(int,int)是错误的。不能对函数指针变量进行任何运算。“ad+n”、“ad++”、“ad--”等是错误的。利用函数指针调用函数时,把“*”和函数名用括号括起来,成(*函数名)(…)形式,是必须

7、的。因为“()”的优先级高于“*”。在例13-3中,调用函数指针ad所指函数的形式是(*ad)(a[c],a[c+1])不能写成*ad(a[c],a[c+1])函数指针声明中用括号把星号“*”和“标识符”括起来是必须的,比如上述的(*f)原因是由优先级造成的。引进函数指针概念不是凭空臆造的,它的作用在于使用函数指针调用函数实现其它程序设计语言中函数参数的功能本节先介绍利用函数指针调用函数,下一节介绍函数参数。可以把函数名赋值给一个函数指针变量,然后通过函数指针变量调用函数。形式是:函数指针变量=函数名;这个赋值要求

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。