C语言指针学习:指向函数的指针

来源:互联网 发布:根据wsdl生成java代码 编辑:程序博客网 时间:2024/05/16 05:54

示例代码:

#include "stdio.h"int add(int a, int b);int main() {int numa1 = 1, numb1 = 2;int numa2 = 2, numb2 = 3;int (*op)(int, int);op = add;op = add;printf("%d %d\n", op(numa1, numb1), op(numa2, numb2));return 0;}int add(int a, int b) {return a+b;}

或者:

#include "stdio.h"int add(int a, int b);int main() {int numa1 = 1, numb1 = 2;int numa2 = 2, numb2 = 3;int (*op[2])(int, int);op[0] = add;op[1] = add;printf("%d %d\n", op[0](numa1, numb1), op[1](numa2, numb2));return 0;}int add(int a, int b) {return a+b;}

函数返回指向函数的指针变量:

#include <stdio.h>int (*choice(int v))(int v1, int v2);int max(int v1, int v2);int min(int v1, int v2);int main() {typedef int (*pf)(int, int);pf pmax = choice(1);pf pmin = choice(2);int v1 = 112, v2 = 521;printf("Max is : %d\n", pmax(v1, v2));printf("Min is : %d\n", pmin(v1, v2));return 0;}int (*choice(int v))(int v1, int v2) {if(v == 1) {return max;} else if(v == 2) {return min;}}int max(int v1, int v2) {return v1 > v2 ? v1 : v2;}int min(int v1, int v2) {return v1 < v2 ? v1 : v2;}


                                             
0 0
原创粉丝点击