指针函数与函数指针的区别和理解(附VS测试代码)

4 篇文章 0 订阅
3 篇文章 0 订阅

区别

  1. 指针函数: 指针函数本质是一个函数,其返回值为指针。如:int* fun(int x,int y); 

  2. 函数指针: 函数指针本质是一个指针,其指向一个函数。如:int (*fun)(int x,int y);

理解(欢迎批评指正):

  1. 在指针函数中,先看int*,这是一个指针类型,就和int、char一样,是一种类型。而int *是用来定义指针的,现在它后面接一个函数,所以叫指针函数。对于指针函数的作用,我们看看它的类型是指针类型int*,那返回值就是一个指针。

  2. 在函数指针中,int 后面接的是函数 (*fun)(int x,int y);(你不能解读成 int(*是表示一种类型),而函数名称(*fun)中含有指针,所以先后连起来读,叫函数指针。对于函数指针的作用,我们看看它的类型,int 或者 是void,而 (*fun)就是函数原型中的函数名称,说明*fun指向了一个函数名,就指向了一个函数呗。

  3. 做任何事情差不多就好,必须认真,但是不能太认真,过犹不及。

VS测试用源代码:

#include <iostream>
using namespace std;

/******指针函数******/

//int *GetNum(int x); //指针函数声明形式

//
//void main(void)
//{
//	cout << "===============start================" << endl;
//	int num;
//	cout << "Please enter the number between 0 and 6: ";
//	cin >> num;
//	cout << "result is:" << *GetNum(num) << endl;	 //输出返回地址块中的值
//}
//
//int *GetNum(int x) {
//	static int num[] = { 0,1,2,3,4,5,6 };
//	return &num[x];  //返回一个地址
//}


/********函数指针**********/
int max(int a, int b) {
	return a>b ? a : b;
}

void main(void)
{
	cout << "===========start===========" << endl;
	int(*func)(int, int);       //定义一个指向该函数形式的指针变量
	func = max;
	int a, b;
	cout << "Please enter two numbers:";
	cin >> a >> b;
	int result = (*func)(a, b);    //运用指针变量调用函数
	cout << "max=" << result << endl;
}

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

水浒传鲁智深

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

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

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

打赏作者

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

抵扣说明:

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

余额充值