3

鉴于以下情况:

&row->count

会在 C++ 中评估 &(row->count) 还是评估 (&row)->count?

编辑:这是 C++ 优先级的一个很好的链接

4

7 回答 7

18

就优先规则而言,我一直很喜欢 Steve Oualline 在“Practical C”中提出的规则:

C 中有 15 条优先规则(&& 在 || 之前 ?:)。实用的程序员将这些减少到两个:

1)乘法和除法在加法和减法之前。

2)在其他所有内容周围加上括号。

于 2008-09-30T20:21:36.750 回答
4

&(行->计数)

于 2008-09-30T20:16:11.303 回答
1

这已经问过了。但这里有一个链接。

编辑:好的,这个问题非常相似。并且可能还有另一个。

于 2008-09-30T20:14:56.733 回答
1

这里解释了 C 运算符的优先级

根据表格, -> 的优先级高于 & 运算符,所以它是 &(row->count)

于 2008-09-30T20:19:29.843 回答
1

我可以建议您使用测试程序解决这些问题吗?这样做的好处是您将确定答案对于您的实施是正确的,并且您不会面临问题回答错误的风险。

于 2008-09-30T21:36:25.400 回答
0

&(行->计数)

于 2008-09-30T20:15:30.650 回答
0

-> 具有比 &(地址)更高的优先级。所以你的表达式将被评估为 &(row->count)

于 2008-09-30T20:17:14.497 回答