学习笔记(68):C语言入门到精通-函数指针

立即学习:https://edu.csdn.net/course/play/10534/378153?utm_source=blogtoedu

学习目标
函数指针怎么定义。
函数指针有什么用。
回调函数。

函数指针怎么定义?
函数指针是指向函数的指针变量。
int a = 0;
int *p = &a;
int max(int x, int y);

int (*p)(int, int) = &max;

函数指针有什么用?
#include <stdio.h>

int max(int x, int y) {
	return 30;
}

int main() {
	int (*p)(int, int) = &max;

	printf("max = %d\n", max(1, 2));
	printf("max = %d\n", p(1, 2));

	return 0;
}

回调函数
函数指针作为某个函数的参数。
函数指针变量可以作为某个函数的参数来使用的,回调函数就是一个通过函数指针调用的函数。
简单讲:回调函数是由别人的函数执行时调用你实现的函数。
#include <stdio.h>

typedef int ID;
typedef int (*Min)(int, int);
typedef int (*Max)(int, int);
typedef int (*Sum)(int, int);

int min(int x, int y) {
	return x < y ? x : y;
}

int max(int x, int y, Sum sum) {
	int t = x > y ? x : y;
	return t > sum(x, y) ? t : sum(x, y);
}

int sum(int x, int y) {
	return x + y;
}

void fun(Max p_max, Min p_min, Sum p_sum) {
	printf("max = %d\n", p_max(1, 2));
	printf("min = %d\n", p_min(1, 2));
	printf("sum = %d\n", p_sum(1, 2));
}

int main() {
	//Sum p_sum = &sum;
	//printf("max = %d\n", max(1, 2, p_sum));
	fun(max, min, sum);

	return 0;
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

道知极限编程

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值