【C++】函数指针基础知识理解和使用--统计代码运行时间的简易程序

举报
王博Kings 发表于 2020/12/29 22:45:15 2020/12/29
【摘要】 目录 什么是函数地址? 1.假如你有一个需求?改怎么做 1.1 获取函数地址 1.2 声明函数指针  1.3 使用指针调用函数   2. 实现需求的代码  什么是函数地址? 1.假如你有一个需求?改怎么做 假如你设计一个函数estimate(),用来估算指定行数代码的时间。要将使用的算法函数传递给estimate(),需要以下几步: 1.1 获取...

目录

什么是函数地址?

1.假如你有一个需求?改怎么做

1.1 获取函数地址

1.2 声明函数指针 

1.3 使用指针调用函数 

 2. 实现需求的代码


 什么是函数地址?

1.假如你有一个需求?改怎么做

假如你设计一个函数estimate(),用来估算指定行数代码的时间。要将使用的算法函数传递给estimate(),需要以下几步:

1.1 获取函数地址

 

think(),think就是函数的地址。

1.2 声明函数指针 

 注意1:

注意2:

 

void estimate(int line, double (*pf)(int));
 

 

1.3 使用指针调用函数 

 2. 实现需求的代码


  
  1. // fun_ptr.cpp -- 本程序用来示例函数指针
  2. // 输入代码数和函数,能算出时间
  3. #include<iostream>
  4. using namespace std;
  5. double betsy(int);
  6. double pam(int);
  7. void estimate(int line, double(*pf)(int));//注意:特征标,返回类型应该一致!
  8. int main()
  9. {
  10. int code;
  11. cout << "多少行代码?" << endl;
  12. cin >> code;
  13. cout << "这是老王的结果:" << endl;
  14. estimate(code, betsy);
  15. cout << "这是老李的结果:" << endl;
  16. estimate(code, pam);
  17. return 0;
  18. }
  19. double betsy(int lns)
  20. {
  21. return 0.05*lns;
  22. }
  23. double pam(int lns)
  24. {
  25. return 0.03*lns + 0.0004*lns*lns;
  26. }
  27. void estimate(int line, double(*pf)(int))
  28. {
  29. cout << line << " 行代码需要";
  30. cout << (*pf)(line) << " 小时" << endl;
  31. }

 运行结果:

文章来源: kings.blog.csdn.net,作者:人工智能博士,版权归原作者所有,如需转载,请联系作者。

原文链接:kings.blog.csdn.net/article/details/89418515

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。