c ++偏好顺序..这个表达式是如何评估的?

时间:2011-02-13 21:18:07

标签: c++

我正在尝试理解我使用的一个模拟工具的某些库的代码。 它有以下几行:

propData->fadingStretchingFactor =
        (double)(propProfile0->samplingRate) *
        propProfile->dopplerFrequency /
        propProfile0->baseDopplerFrequency /
        (double)SECOND;

现在,如果有两个连续的除法运算符,你如何计算运算的顺序

3 个答案:

答案 0 :(得分:6)

分部是左联的。 a / b / c相当于(a / b) / c

请注意,C(和C ++)不保证对术语abc的评估之间进行任何排序。例如,foo() / bar()可以在foo()之前拨打bar(),在foo()之后拨打bar()

答案 1 :(得分:4)

同等优先操作的分组由operator associativity确定。

在C ++中,除法是左关联,这意味着最左边的操作首先被分组,即:

a / b / c

与:

相同
(a / b) / c

答案 2 :(得分:0)