函数与指针

函数与指针

 

 

1、函数指针的本质

//函数指针的理解例子
#include <stdio.h> typedef int(FUNC)(int);//用typedef方式定义函数指针 int test(int i) { return i * i; } void f() { printf("Call f()...\n"); } int main() { FUNC* pt = test;//FuncType* pointer方式定义pt并指向test函数 void(*pf)() = &f;//type(*pointer)(parameter list)方式定义pf并指向f函数 pf();//执行test (*pf)(); printf("Function pointer call: %d\n", pt(2)); }

 

2、回调函数

//理解函数的栗子
#include <stdio.h> typedef int(*FUNCTION)(int);//通过typedef为函数类型重命名:typedef type name(parameter list) int g(int n, FUNCTION f) { int i = 0; int ret = 0; for(i=1; i<=n; i++) { ret += i*f(i); } return ret; } int f1(int x) { return x + 1; } int f2(int x) { return 2*x - 1; } int f3(int x) { return -x; } int main() { printf("x * f1(x): %d\n", g(3, f1));//调用函数作为参数传递给被调用函数 printf("x * f2(x): %d\n", g(3, f2)); printf("x * f3(x): %d\n", g(3, f3)); }

 

3、右左法则

小咸鱼的:https://blog.csdn.net/sinat_30071459/article/details/52894220

等等,平时用的少,很容易忘记,需要用的时候就网上查找。。。

 

posted @ 2019-06-05 09:57  千小塔  阅读(121)  评论(0编辑  收藏  举报