简单 指针问题请教

来源:百度知道 编辑:UC知道 时间:2024/06/23 07:34:21
p为指针变量,display为函数
请问 *p->display()
p->display()
p.dispaly() //可能出现结构体或类
的区别?

谢谢各位高手!

如果p指向是一个重载了->操作符的对象的话

*p->display( )是通过指针p调用成员display( )函数,返回一个指针,然后解引用(注意如果返回的不是指针的话会引起编译错误)

p->display()是通过指针p调用成员display( )函数

p.display( )是调用p对象的display( )函数
(这种情况可能是p是一个类并重载了->操作符)

否则只有中间那个是对的。。

一个*p->display()就好象会报错吧!
p->display()表示用指针对象p执行display(),p.display()表示用p指向的地址值执行display(),其中只有p->display()有意义了。