我看《C程序设计语言》书,看到103页时,有一个关于指向函数的指针把我看糊涂了。如图所示
数指针就是里面那个comp。可我找了半天也找不到它在哪里定义的,那么当调用它时它是怎么转换的呢?比如那个?:返回的是numcmp,那么最后是怎么转到numcmp函数里面呢?
题主弄混了一个关键的概念:指向函数指针的本质是什么,在这里也就是您所说的comp。
请注意,这里的comp其实是一个变量,一个指针变量。而不是楼主所认为的函数!它不需要包含任何代码,因为它是一个指针变量。当这个comp被赋值以后【一般都是赋一个函数代码段地址值】,那么运行时,有关comp的代码语句都会直接把comp换成这个地址值,比如您截图中的numcmp,当把它赋值给comp以后,以后再遇到comp时,就会直接调用numcmp,而不是从comp“函数里”转到numcmp。
请题主看下面的图片代码:
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。