编译器足够聪明,可以知道左侧操作数是指针还是引用。为什么会员访问有两个不同的运营商(。和 - >)?
是否使间接显式化?易读性?在设计C时,是否存在可用硬件的某些内容,以便在阅读源代码时轻松区分这些操作?
我读过它只是(*ptr).member
的简写语法,但是当ptr是指针时,ptr.member
是否有效?如果ptr是一个指针,为什么ptr.member
“不能正常工作”ptr->member
?
答案 0 :(得分:1)
不是一个答案,但是这个区别被利用的一个地方是智能指针和容器迭代器。
在这两种情况下,.
运算符用于对象本身进行操作,而->
用于对包含在其中的对象进行操作。