芯友网Xin1234.COM

@灰狗 意思是函数名  存储了  一个基地址   和一个偏移地址?



?灰狗 
意思是函数名  存储了  一个基地址   和一个偏移地址?
tna
也就说,函数调用是直接访问地址,函数指针经过两层
最终还是地址
狗灰
?飘 函数名不存储地址,是调用函数名的地址才存储相对地址。
call指令编译后1个字节,然后后面接着的4个字节存相对地址。
喵个了喵
  果然大腿
狗灰

这个也是因为C/C 艹的语法造成的错觉,直接函数名的类型是就函数类型,&函数名则是函数指针常量类型,而C/C艹语法允许函数类型隐式转换为函数指针类型,所以才有了这两个一样的效果:
int (*p1)(int) = putchar; // 按C艹的语法来看这个调用的是:putchar.operator int(*)(int)()
int (*p1)(int) = &putchar; // 按C艹的语法来看这个调用的是:putchar.operator &()
而putchar.operator int(*)(int)()和putchar
.operator &()返回的一样的结果而已
6666
我一直没搞懂
函数名是个对象  调用函数  就是执行对象的()操作符  这样理解?
?灰狗 
狗灰
哦 搜嘎   那对象就不存在地址  只有指向对象的 才有地址可言
狗灰

这样就可以看出两个的不同了吧!
函数本身可以被引用,函数取地址操作返回的是个临时对象,所以不能被引用。

?飘 只有指向对象和调用对象的时候才有地址产生,对象本身没有自己的地址。
不太对,应该是:只有指向对象和调用对象的时候才有地址的使用,对象本身没有存储自己的地址。
毛金大
eclipse 这里的东西怎么都没了 怎么打开?
狗灰

相关问题
------分隔线----------------------------
赞助商链接
赞助商链接
推荐内容