c语言---函数指针变量

目录

一、函数指针变量的概念

函数指针变量应该是用来存放函数地址的,未来通过地址能够调用函数的。

二、函数指针变量的创建

那么函数是否有地址呢?

接下来看看:

c 复制代码
#include <stdio.h>
void test()
{
 printf("hehe\n");
}
int main()
{
 printf("test: %p\n", test);
 printf("&test: %p\n", &test);
 return 0;
}

运行结果:

确实打印出来了地址,所以函数是有地址的,函数名就是函数的地址,当然也可以通过 &函数名 的方式获得函数的地址。这两个结果一模一样。

如果我们要将函数的地址存放起来,就得创建函数指针变量咯,函数指针变量的写法其实和数组指针非常类似。如下:

c 复制代码
int(*pf3)() = Add;//第一种创建方法(&Add)
int(*pf3)(int, int) = Add;//第二种创建方法
int(*pf3)(int x, int y) = Add;//第三种创建方法

三、函数指针变量的使用

c 复制代码
#include <stdio.h>
int Add(int x, int y)
{
	return x + y;
}
int main()
{
	int(*pf3)(int x, int y) = Add;
	printf("%d\n", (*pf3)(2, 3));
	printf("%d\n", pf3(3, 5));
	return 0;
}

运行结果:

欧耶!!!我学会啦!!!

相关推荐
走错路的程序员19 小时前
C语言单片机与C#上位机之间传递大量参数比较好的实践方案
c语言·单片机·c#
代码游侠19 小时前
复习——Linux 系统编程
linux·运维·c语言·学习·算法
第二只羽毛20 小时前
外卖订餐管理系统
java·大数据·开发语言·算法
挫折常伴左右20 小时前
初学HTML2
java·开发语言
invicinble20 小时前
java--se数据处理
java·开发语言
昔时扬尘处20 小时前
如何检测python和pytest的安装环境
开发语言·python·pytest·自动化测试平台·adi
发疯幼稚鬼20 小时前
希尔排序与堆排序
c语言·数据结构·算法·排序算法
第二只羽毛20 小时前
图书管理系统项目PPT文稿
java·大数据·开发语言·ide
前端小端长20 小时前
项目里满是if-else?用这5招优化if-else让你的代码清爽到飞起
开发语言·前端·javascript
胡萝卜3.020 小时前
现代C++特性深度探索:模板扩展、类增强、STL更新与Lambda表达式
服务器·开发语言·前端·c++·人工智能·lambda·移动构造和移动赋值