参考

函数名称是什么?

  • 函数名称指向该函数的地址

https://godbolt.org/z/3a3r8W8cP

  1. #include<cstdio>
  2. #include<cstdlib>
  3. using namespace std;
  4. void print(int i)
  5. {
  6. printf("%d", i);
  7. }
  8. int main()
  9. {
  10. print;
  11. return 0;
  12. }

程序正常运行

什么是回调函数?

  • 回调函数就是一个被作为参数传递的函数

https://godbolt.org/z/vjrPs5W11

  1. #include<cstdio>
  2. #include<cstdlib>
  3. using namespace std;
  4. void print(int i)
  5. {
  6. printf("%d", i);
  7. }
  8. void for_each(int* a, void (*f)(int))
  9. {
  10. for(int i = 0; i != 3; ++i )
  11. {
  12. // (*f)(*(a+i));
  13. (*f)(a[i]);
  14. }
  15. }
  16. int main()
  17. {
  18. int arr[] = {1, 2, 3};
  19. for_each(arr, print);
  20. return 0;
  21. }
  1. 123