阅读量:0
C语言函数指针是指向函数的指针变量,它可以指向一个函数的首地址。函数指针的用法主要有两种:
- 函数指针作为参数:函数指针可以函数的参数,用来在函数调用时传递函数的地址,从而达到在函数中调用其他函数的目的。这样可以实现一些高级的函数功能,比如回调函数。例如:
#include <stdio.h> void print(int num) { printf("%d\n", num); } void iterate(int start, int end, void(*func)(int)) { for(int i = start; i <= end; i++) { func(i); } } int main() { iterate(1, 5, print); return 0; }
- 函数指针作为返回值:函数指针也可以函数的返回值,用来返回一个指向函数的指针。这样可以实现根据不同的条件返回不同的函数地址。例如:
#include <stdio.h> int add(int a, int b) { return a + b; } int subtract(int a, int b) { return a - b; } int multiply(int a, int b) { return a * b; } int divide(int a, int b) { return a / b; } int (*getOperation(char op))(int, int) { switch(op) { case '+': return add; case '-': return subtract; case '*': return multiply; case '/': return divide; default: return NULL; } } int main() { int a = 10, b = 5; char op = '+'; int (*operation)(int, int) = getOperation(op); if(operation != NULL) { int result = operation(a, b); printf("%d\n", result); } else { printf("Invalid operator\n"); } return 0; }
这样,根据不同的操作符,可以返回对应的函数地址,从而实现不同的运算。