- 1、本文档共70页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
思考 printf ( “%4d ” , *ptr++ ) ;修改为 printf ( “%4d ” , *a++ ) ; 可否? /* 折半查找 */ 6.8 指向函数的指针变量 6.8 指向函数的指针变量 例6.23 编制一个对两个整数a,b的通用处理函数process,要求根据调用process时指出的处理方法计算a,b两数中的大数、小数、和。 分析:定义一个指向函数的指针f,该指针指向 的函数有两个整型参数,通过通用计算 函数使用函数指针,使得主函数的调用 过程变得简化。 * 程序程序结果 : 输入: Enter two num to a and b:1 2 输出: max=2 min=1 add=3 int max(int ,int ); int min(int ,int ); int add(int ,int ); /* 函数原型声明*/ int process(int x,int y, int (*f)(int,int)); /* 调用通用处理函数*/ printf(max=%d\n,process(a,b,max)); printf(min=%d\n,process(a,b,min)); printf(add=%d\n,process(a,b,add)); 6.8 指向函数的指针变量 说明: 函数process处理两个整数数,并返回一个整型值.同时又要求process具有通用处理能力(处理求大数、小数、和),所以可以考虑在调用process时将相应的处理方法(处理函数)传递给process process函数要接受函数作为参数,即process应该有一个函数指针作为形式参数,以接受函数的地址.这样process函数的函数原型应该是: int process(int x,int y,int (*f)(int,int)); process函数是一个“通用”整数处理函数,它使用函数指针作为其中的一个参数,以实现同一个函数中调用不同的处理函数 * 6.9 main函数的参数 C程序最大的特点就是所有的程序都是用函数 来装配的。main( )称之为主函数,是所有程序 运行的入口。 在要求执行一个命令时,所提供的命令行里往 往不仅是命令,可能还需要参数。例如: edit file1.txt 命令行中的额外信息就是本节要讨论的命令行 参数 * 在命令行窗口里,要用系统的编辑器编辑一个文件 6.9 main函数的参数 C语言的程序是如何实现命令行参数机制? C语言实现命令行参数的方法是在主函数的参 数列表中定义时的参数,实现带参数的命令。 前面程序中的main函数都没有参数,即不处理 命令行参数。其实main可以有两个参数,其原 型是: int main (int argc, char *argv[]); * 启动命令行中的命令行参数的个数,包括命令本身 各命令行参数的字符串,最后是一个空指针,表示数组结束 6.9 main函数的参数 若有命令行命令为: program Welcome to C Programming World 当程序执行进入主函数main时,与命令行参数 如图 * 注:argc为6 6.9 main函数的参数 例6. 24主函数的参数 #include stdio.h int main (int argc, char *argv[]){ int i; for (i = 0; i argc; ++i) printf(Args[%d]: %s\n, i, argv[i]); return 0; } * 输入: echo programming is understanding 输出: echo programming is understanding 小结 定 义 含 义 int i; 定义整型变量i int *p = i; p为指向整型数据i的指针变量 int a[n]; 定义含n个元素的整型数组a,此时n为常量(下同) int *p[n]; n个指向整型数据的指针变量组成的指针数组p int (*p)[n]; p为指向含n个元素的一维整型数组的指针变量 int f(); f为返回整型数的函数 int *p(); p为返回指针的函数,该指针指向一个整型数据 int (*p)(); p为指向函数的指针变量,该函数返回整型数 int **p; p为指针变量,它指向一个指向整型数据的指针变量
文档评论(0)