函数指针和地址问题,指针的值和函数首地址的值是一样的吗?

p和max的值应该是一样的,为什么会不同呢... p和max的值应该是一样的,为什么会不同呢 展开
 我来答
chmwh1992
推荐于2016-04-30 · TA获得超过1126个赞
知道小有建树答主
回答量:475
采纳率:100%
帮助的人:535万
展开全部
max是函数名,也就是函数的入口地址,而语句p=max使p的值等于max的值,当然使p和max一样。你的意思是指输出的结果吧,,即printf("max=%d",(*p)(a,b));输出的是函数的返回值,即a,b中较大的一个,而不是max(即地址);若想输出地址应该是:printf("max=%p\n",max)或printf("max=%p\n",p);括号中“”中的内容是可以变化的,如:printf("最大值=%d\n",(*p)(a,b));
追问
图片右下角显示了p和max的地址,值并不一样,纠结的就是这个。
追答
以前没有发现,的确如此;但输出结果是一样:printf("p=%p,max=%p\n",p,max);相同,主函数也是如此,printf("main=%p\n",main);输出结果和watch中的值不一样。不知什么原因,很遗憾没找到。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式