病例:不理解C/C++的函数指针

  一直对函数指针的概念一知半解的,于是搜索了一把,发现几个帖子讲解不错,就帖子这里了.      

                                病例:不理解C/C++的函数指针

作者:大怪
 
病人:医生,我折久,无法理解函数指
中医:能意到自己不理解,不。那说说你目前的理解。函数指是什
病人:函数指是指向函数的指
中医:函数是什
病人:函数就是函数。
中医:不是指向函数的指 ?
病人:自然不是。
中医:那函数怎可以赋值给函数指?int可以赋值给 int* ?
病人:个。。。。。。
中医:逻辑不通了吧?
病人:是啊,怎回事哩?
中医:问题置一下,我你,什是指
病人:是放地址的量。
中医:函数指里面放的什
病人:函数入口地址。
中医:函数指就是放函数入口地址的量?
病人:  (小心地)我同意。
中医:函数是放函数入口地址的常量。
病人:!这样一来就好解!函数赋值给函数指就像把常量赋值给量!
中医:问题吗
病人:有,"函数是放函数入口地址的常量。"不通啊。
 
函数是放自己入口地址的西?
中医:孺字可教。"函数入口地址"是一个,不能拆。真正的函数,无非是一
 C/C++
中没有描述""西,
 
只有描述""的入口地址的西,函数及函数指
病人:我懂了,"函数指是指向函数(1)的指""函数(2)不是指向函数(3)的指"的矛盾,
 
出自"函数(1)"的是你"真正的函数"
 
函数(2)(3)指的C/C++法意上的"函数",两事!
 
中医:,有道理。那么还问题吗     
病人:"函数指是指向函数的指"固然误导人,不C/C++法,也起到了推波助的作用。
//
#include
typedef int (*FN_HAHA)();
int real_haha()
{
 return printf("haha/n");
}
void main(int argc, char* argv[])
{
 FN_HAHA haha=real_haha;
 real_haha();
 (*haha)(); 
}
//
既然  haha real_haha是一个次上的西,
么调用的一个 "real_haha() ",
一个(*haha)()哩?很明是在搞分化,搞子。
医生:C/C++法你都敢批的!
   
正如你所不是好的法,所以在的编译器,比如VCgcc
   
都允 haha();来代替传统(*haha)();44就知道了。
     
至于上都写(*haha)();我只能
      
问题我自己也被害了很久,最后扔了自己想通的。
病人:我的病好了,我回去也把扔了
 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值