让我们有两行代码:
&car->speed
&(car->speed)
- 这两条线是等价的吗?在这两种情况下我都会得到地址
speed
吗? - 如果它们是等价的,那么选择什么作为编码约定更好?
让我们有两行代码:
&car->speed
&(car->speed)
speed
吗?这两条线是等价的吗?在这两种情况下我都会得到速度的地址吗?
是的。->
具有比 unary 更高的优先级&
,因此&car->speed
和&(car->speed)
是等价的。
如果它们是等价的,那么选择什么作为编码约定更好?
选择第二个,因为它显示了您对 的地址感兴趣的预期行为speed
。
这个问题已经在这里问过好几次了。后缀表达式运算符的优先级高于一元运算符。所以这两个表达式
&car->speed
&(car->speed)
是等价的。
或与其他一元运算符的另一个类似示例!
!car->speed
!(car->speed)
至于编码约定,我更喜欢
&car->speed
如果您想car
单独进行合并,请使用以下命令:
( &car )->speed