c语言sscanf函数的用法是什么
232
2022-09-18
指向函数的指针
C/C++中的指针可以指向一个函数,也叫函数指针。 注:函数返回值是指针的叫指针函数,中心词在后面,即函数指针其实质是一个指针,指针函数其实质是函数。
还是以实例说话,下面的例子进行加减乘除运算。
/*compute函数的第三个参数是一个函数指针,这里的calculate是一个变量,其存储的是函数地址,你可以将具有相同签名的函数名传递给calculate*/double compute(double x, double y, double (*calculate) (double, double)){ return calculate(x, y);}double add(double x, double y){ return x + y;}double subtract(double x, double y){ return x - y;}double multiply(double x, double y){ return x * y;}double divide(double x, double y){ if (0 == y) { throw invalid_argument("Attempted division by zero"); } return x / y;}int main(){ double x = 10; double y = 2; /*这里的add是一个函数,直接传递函数名就好。这里就将add传递给了calculate*/ double result = compute(x, y, add); cout << result << endl; return 0;}
运行结果是12。
指针函数的定义:返回值 (*函数名) (参数列表) 像上面的指针函数定义:double (*calculate) (double, double)
我们可以使用typedef简化指针函数的书写如下:
/*虽然和前面的形式比较像,但是这里的FunctionCalculate是类型名称,和前面例子中的calculate不一样,前面的calculate是一个变量*/typedef double (*FunctionCalculate) (double, double);/*这里的fun变量相当于前面的calculate变量*/double compute(double x, double y, FunctionCalculate fun){ return fun(x, y);}//调用形式还是一样的int main(){ double x = 10; double y = 2; double result = compute(x, y, add); cout << result << endl; return 0;}
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~