C

首先,存储函数的地址的变量在形参中是一个指针变量。如下,我声明了个函数:

void Seperate(int A[], int m, int B[][maxSize],int M,int N);//从A中取出连续M个以上大于N的数据段放入B

当我想用函数指针在另一个函数中调用这个函数的时候,传进去的应该是Seperate这个函数的地址,而不是完整的函数。

错误例子:

    void fun(void (*f)(int A[], int m, int B[][maxSize], int M, int N)){}int main(){fun(&Seperate(A, maxSize, B, 5, 120));return 0;}

这样的想法是错误的,因为形参中,f是一个变量,不是一个完整的函数。

正确调用:

void fun(void (*f)(int A[], int m, int B[][maxSize], int M, int N))
{int A[maxSize], i;for (i = 0; i < maxSize; ++i){A[i] = rand() % 100 + 100;}int B[maxSize][maxSize];f(A, maxSize, B, 5, 120);}int main()
{fun(&Seperate);//注意:函数名 等价于 函数名取地址,所以写成Seperate也完全没有问题system("pause");return 0;
}

C编程这么久,目前用到函数指针的题目只有一个,那就是求定积分函数。由于求一个函数的定积分,必须把函数输入进去,这个时候,函数指针就派上大用场了,可以在定积分函数的形参列表定义函数指针变量,这样想要求某个函数的定积分的时候,直接把这个函数名传进去就行,使得求定积分函数就成了一个通用函数,而不是求单独某个函数的定积分。用术语说,这种使用方式称为“模版方法”,即“借用”指定的外部方法来产生结果。

C#

C#中delegate类型是函数指针的升级版,说到底还是把传进来的函数的内存地址保存起来了。

C/C#关于函数调用的一些心得相关推荐

  1. ucore lab5

    UCORE实验5 实验目的 了解第一个用户进程创建过程,系统调用框架的实现机制,ucore如何实现系统调用sys_fork/sys_exec/sys_exit/sys_wait来进行进程管理. 实验内 ...

  2. lua 函数调用1 -- 闭包详解和C调用

    这里, 简单的记录一下lua中闭包的知识和C闭包调用 前提知识: 在lua api小记2中已经分析了lua中值的结构, 是一个 TValue{value, tt}组合, 如果有疑问, 可以去看一下 一 ...

  3. Python心得--如何提高代码质量

    前些日子用python基于prometheus开发了一个vsphere volume卷监控的exporter,于是跟vsphere的api(pyvmomi)接口打上了交道,开发的过程中你会发现pyvm ...

  4. zzfrom水木-Linux环境学习和开发心得(作者:lunker)

    转自水木lunker,非常好的文章,在此鸣谢之. 本人水平有限,如果有错误和遗漏,或者有更好的建议,请大家认真的拍. 强烈建议: 文中涉及的图书最好入手一个英文版的,如果实在阅读有困难,可以在电脑中准 ...

  5. PHP基础班初学心得:脑洞实验-JS变量存储函数与return的一些问题

    本人刚参加PHP基础班培训第一天,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. 在 ...

  6. 【Visual C++】一些开发心得与调试技巧

    自己平时收集的一些技巧与心得,这里分享出来,普及一下知识. 1.如何在Release状态下进行调试 Project->Setting=>ProjectSetting对话框,选择Releas ...

  7. 《ODAY安全:软件漏洞分析技术》学习心得-----shellcode的一点小小的思考

    I will Make Impossible To I'm possible -----------LittleHann 看了2个多星期.终于把0DAY这本书给看完了,自己动手将书上的实验一个一个实现 ...

  8. 谈谈选用技术的原则,技术学习方法技巧,阅读代码的技巧及其它 MSF的一点心得...

    谈谈技术原则,技术学习方法,代码阅读及其它(正文) 这篇文章是前一阵在水木BBS上和别人讨论中偶自己发言的摘编,是偶这几年开发过程完全经验式的总结.完全个人经验,供批判. 一.选用技术的原则 比较规范 ...

  9. 在 .NET Core 3.0 中实现 JIT 编译的 JSON 序列化,及一些心得与随想

    源码:https://github.com/Martin1994/JsonJitSerializer NuGet:https://www.nuget.org/packages/MartinCl2.Te ...

  10. c语言实训作业总结,c语言程序设计上机实践心得报告

    c语言程序设计上机实践心得报告 班级:11 电信 2 姓名:莫金波 学号:1107032242012.12.28 惠州学院 HUIZHOU UNIVERSITY 我们专业的学生在专业老师的带领下进行了 ...

最新文章

  1. 17个Python骚操作,你都Ok吗?
  2. 为什么很多SpringBoot开发者放弃了Tomcat,选择了Undertow?
  3. php字符串加密解密源码,PHP中加密解密字符串函数源代码
  4. 双向链表删除节点时间复杂度_删除链表的节点(剑指offer第十七题)
  5. Java 大数类BigInteger与BigDecimal详细介绍(配蓝桥杯例题讲解)
  6. WebPart中的ReplaceTokens 方法
  7. pytorch 数据类型
  8. 游戏中基于物理的渲染(一)
  9. python安卓自动化脚本_Autojs-用JavaScript实现自己的安卓手机自动化工具脚本
  10. Android大图片裁剪之手机拍照和从相册中选择注意点
  11. Inception-v4结构代码
  12. 一步一步超级详细的zabbix安装教程
  13. 青果教务管理系统存储型XSS 一枚
  14. 将类似html数据打印机,白激光打印机的工作原理.doc
  15. 利用ViewItems来管理我们ListView项之间的drag-and-drog
  16. 类似零基础学python的小说_就像看小说一样,让你一个小时学会Python零基础「强烈推荐」...
  17. Caffe:图像数据转换成ldb(leveldb/lmdb)文件
  18. [转]XPO 条件相关类
  19. 使用NPOI导出Excel模板
  20. matlab实践总结与体会,MatLab实习心得体会

热门文章

  1. 京东618自动浏览叠蛋糕app
  2. 易捷行云EasyStack与火星高科完成产品互认证,保护云上数据
  3. java登录界面圆形头像,Android使用CircleImageView实现圆形头像的方法
  4. 西瓜书k-means例子matlab实现
  5. java代码如何整合_Java如何合并两个PPT文档?
  6. 去掉最高分和最低分的平均分trimmean,计算频率最高的那个数即众数mode.sngl,判断数据是否重复
  7. python stdin stdout_Python子进程:给出stdin,读取stdout,然后给出更多stdin
  8. 费解的开关 (蓝桥杯倒计时12天)
  9. “WORD上次启动失败,以安全模式启动”的解决方法
  10. 第三讲:如何构建双活数据中心方案