求助一道c语言问题

第24题中框起来的语句什么意思 选项c和d有什么区别

f本身是个函数指针,前面的* 要么不加(如选项A),要么一定要和f用括号括起来.

f=add,而add函数的返回值是int,不是指针类型,d中的* 是和add的返回值结合,add的返回值不是指针,无法结合,编译时一定会有错误信息弹出。

建议你自己用编译器输入一次,然后编译看看反馈信息,这样记忆会更深刻.追问

那c选项怎么理解呢 f是指针 *f代表一个具体值吧

A和c有什么区别呢

追答

A和C都是正确的用法,用C写法一定要有括号把*和f括起来。函数指针是比较特殊的指针,不同于我们学习到的数据指针,限于个人能力,无法详细向你解释对函数指针取*的物理意义,无法详细阐述AC在翻译成机器码(汇编语言)时的区别,我只能告诉你,两种写法完成的工作是一样的,都是调用对应的函数.
***

对于f=add,如果这个add的返回值是一个指针的话,D写法是正确的.

追问

还是没说清a和c的区别

温馨提示:答案为网友推荐,仅供参考
相似回答