Welcome to my blog.|

Khru

园龄:2年11个月粉丝:22关注:1

📂C
2023-04-09 22:20阅读: 6评论: 0推荐: 0

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 中国大陆许可协议进行许可。

posted @   Khru  阅读(6)  评论(0编辑  收藏  举报
历史上的今天:
2022-04-09 SQL Server-数据库的创建、分离、备份、附加和删除
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起