【摘要】:指向函数的指针变量不是固定指向哪一个函数,而是表示声明了这样一个类型的指针变量,它是专门用来存放函数的入口地址的。用指向函数的指针变量调用函数的一般形式为:;或指针变量名;下面通过例子来说明用指针形式实现对函数调用的方法。数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素,而函数指针的移动是毫无意义的。
指向函数的指针变量不是固定指向哪一个函数,而是表示声明了这样一个类型的指针变量,它是专门用来存放函数的入口地址的。在程序中把哪个函数(函数的返回值类型应与函数指针的数据类型保持一致)的地址赋给它,它就指向哪个函数。在程序中,同一个函数指针可以先后指向同类型(返回值类型相同)的不同函数。
用指向函数的指针变量调用函数的一般形式为:
(*指针变量名)(实参表列);
或
指针变量名(实参表列);
下面通过例子来说明用指针形式实现对函数调用的方法。
【例9.15】找出两个数中最大值。
程序代码:(www.xing528.com)
运行结果:
程序讲解:
从本例程序可以看出,先定义函数指针变量,如程序中"int(*pmax)(int a,int b);"定义pmax为函数指针变量。把被调函数的入口地址(函数名)赋给该函数指针变量,如程序中"pmax=max;";用函数指针变量形式调用函数,如程序中"z=(*pmax)(x,y);"。
注意:
(1)函数指针变量不能进行算术运算,这是与数组指针变量不同的。数组指针变量加减一个整数可使指针移动指向后面或前面的数组元素,而函数指针的移动是毫无意义的。
(2)函数调用中"(*指针变量名)"的两边的括号不可少,其中的*不应该理解为求值运算,在此处它只是一种表示符号。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。