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

本文通过对话形式探讨了C/C++中函数指针的概念,并通过示例代码解释了如何使用函数指针。文章揭示了函数与函数指针之间的区别,帮助读者理解函数指针的基本原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

病例:不理解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)();我只能
问题我自己也被害了很久,最后扔了自己想通的。
病人:我的病好了,我回去也把扔了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值