C-指针函数与函数指针
指针函数
- 返回指针类型的结果的函数
#include <stdio.h> int* fun(int* a) { return a; } int main() { int a = 10; int* p = &a; a = 20; printf("%d", *fun(p)); // 20 return 0; }
函数指针
- 指向一个函数的指针
#include <stdio.h> int sum(int x, int y) { return x + y; } int main() { int (*p)(int, int) = sum; int result1 = (*p)(1, 2); int result2 = p(1, 2); // p(1, 2) == sum(1, 2) return 0; }
- 回调函数 - 通过函数指针调用的函数
#include <stdio.h> int sum(int x, int y) { return x + y; } int minus(int x, int y) { return x - y; } int operate(int (*p)(int, int), int x, int y) { return p(x, y); // 回调函数 } int main() { int a = 1, b = 2; int (*p)(int, int); puts("请输入一个'+'或'-':"); while(1) { int operator = getchar(); if(operator == '+') { p = sum; break; } else if(operator == '-') { p = minus; break; } else puts("---Error---"); } int result = operate(p, a, b); printf("%d", result); return 0; }
本文作者:Khru
本文链接:https://www.cnblogs.com/khrushchefox/p/17301290.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
2022-04-09 SQL Server-数据库的创建、分离、备份、附加和删除