博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
函数指针的说明
阅读量:6284 次
发布时间:2019-06-22

本文共 730 字,大约阅读时间需要 2 分钟。

指针能够指向变量、数组,也能够指向函数,函数指针就是指向函数的指针。函数名实际是程序在内存中的起始地址。而指向函数的指针能够把地址传递给函数,也能够从函数返回给指向函数的指针。比如这个样例:通过一个函数求两个数的和。并通过函数指针调用该函数。
#include
int sum(int a,int b);//求和函数的声明void main(){ int a,b; int (*fun)(int,int);//声明一个函数指针 printf("请输入两个整数:"); scanf("%d,%d",&a,&b); printf("第一种调用函数的方法:函数名调用求和函数:\n"); printf("%d+%d=%d\n",a,b,sum(a,b));//通过函数名调用 fun=sum;//函数指针指向求和函数 printf("另外一种调用函数的方法:函数指针调用求和函数:\n"); printf("%d+%d=%d\n",a,b,(*fun)(a,b));//通过函数指针调用函数}int sum(int m,int n)//求和函数实现{ return m+n;}

程序执行结果例如以下:

在程序中的语句int(*fun)(int,int);是声明一个指向函数的指针变量,而且所指向的函数返回值是整型。有两个整型參数。语句fun=sum;表示函数指针fun指向函数sum。fun和sum都指向函数sum的起始地址,程序在编译阶段会被翻译成一行行指令并被装入到内存区域。例如以下图所看到的:

当中。主函数中的语句(*fun)(a,b);是运行调用求和函数的,也能够写成fun(a,b)的形式。由于函数本身就是一个地址。

转载地址:http://lsxva.baihongyu.com/

你可能感兴趣的文章
线段树
查看>>
Undefined symbols for architecture i386:"_OBJC_CLASS_$_xx", referenced from: 解决方法
查看>>
twitter storm源码走读之8 -- TridentTopology创建过程详解
查看>>
命令行中使用adb安装apk
查看>>
Apache中关于页面缓存的设置
查看>>
Linux文件系统
查看>>
计算任意两个日期的间隔天数
查看>>
【敏捷开发】驱动测试开发
查看>>
4种常见的MySQL日志类型
查看>>
onclick事件
查看>>
存储过程加密
查看>>
[再寄小读者之数学篇] (2014-04-18 from 352558840@qq.com [南开大学 2014 年高等代数考研试题]一个秩等式)...
查看>>
hrbustoj 1179:下山(DFS+剪枝)
查看>>
C#进程启动实例
查看>>
Atitit .html5刮刮卡的gui实现总结
查看>>
android精品开源项目整理
查看>>
jQuery同步Ajax带来的UI线程阻塞问题及解决办法
查看>>
Python格式化输出
查看>>
mysql oracle静默 一键安装脚本
查看>>
微服务-分解应用程序从而实现更好的部署特性及可伸缩性
查看>>