前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >函数指针的定义方式,和指针函数的区别,函数指针数组

函数指针的定义方式,和指针函数的区别,函数指针数组

作者头像
大忽悠爱学习
发布2021-03-02 14:29:33
1.3K0
发布2021-03-02 14:29:33
举报
文章被收录于专栏:c++与qt学习

可以类比数组指针:int(*p)[10]

方式1:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void fun1(int a, int b)
{
	printf("%d+%d", a, b);
}
void test()
{
	//函数指针定义的三种方式
	//1.先定义出函数类型,再通过函数类型定义指针变量
	typedef void(FUNC_TYPE)(int, int);
	FUNC_TYPE* func = fun1;
	func(10,20);
}
int main()
{
	test();
	return 0;
}
在这里插入图片描述
在这里插入图片描述

方式2:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void fun1(int a, int b)
{
	printf("%d+%d", a, b);
}
void test()
{
	//函数指针定义的三种方式
     //2.先定义出函数的指针类型,再通过类型定义函数的指针变量
	typedef void(*FUNC_TYPE)(int, int);
	FUNC_TYPE func = fun1;
	func(20, 30);
}
int main()
{
	test();
	return 0;
}
在这里插入图片描述
在这里插入图片描述

方式3:

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void fun1(int a, int b)
{
	printf("%d+%d", a, b);
}
void test()
{
	//函数指针定义的三种方式
	//3.直接定义函数指针变量
	void(*func)(int, int) = fun1;
	func(30,40);
}
int main()
{
	test();
	return 0;
}
在这里插入图片描述
在这里插入图片描述

以上三种方式:第三种的使用率最高

函数指针和指针函数的区别

  1. 函数指针:指向函数的指针—void(*p)(int,int)=fun1;
  2. 指针函数:函数返回值是指针—int * fun1(int *a){return a;}

函数指针数组-----》指针数组,数组里面每个元素类型都是函数指针

代码语言:javascript
复制
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
void fun1()
{
	printf("fun1\n");
}
void fun2()
{
	printf("fun2\n");
}
void fun3()
{
	printf("fun3\n");
}
void test()
{
	//函数指针数组
	//声明一个数组,里面存放着void(*)()类型的数据
	void(*arr[3])() = {fun1,fun2,fun3};
	for (int i = 0; i < 3; i++)
	{
		arr[i]();
	}
}
int main()
{
	test();
	return 0;
}
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 可以类比数组指针:int(*p)[10]
  • 以上三种方式:第三种的使用率最高
  • 函数指针和指针函数的区别
  • 函数指针数组-----》指针数组,数组里面每个元素类型都是函数指针
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档