Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c++;优先顺序。。这个表达式是如何计算的?_C++ - Fatal编程技术网

C++ c++;优先顺序。。这个表达式是如何计算的?

C++ c++;优先顺序。。这个表达式是如何计算的?,c++,C++,我试图理解我使用的某个模拟工具库的代码。。 它有以下几行: propData->fadingStretchingFactor = (double)(propProfile0->samplingRate) * propProfile->dopplerFrequency / propProfile0->baseDopplerFrequency / (double)SECOND; 现在,如果有两个连续的除法运算符

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

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

现在,如果有两个连续的除法运算符,如本例中所示,如何计算运算顺序?优先级相等的运算分组由

在C++中,除法是左相联的,这意味着最左边的运算是先分组的,即:

a / b / c
同:

(a / b) / c

优先级相等的操作的分组由确定

在C++中,除法是左相联的,这意味着最左边的运算是先分组的,即:

a / b / c
同:

(a / b) / c

除法是左联想的<代码>a/b/c相当于
(a/b)/c


请注意,C(和C++)不保证术语
a
b
C
的求值之间的顺序。例如,
foo()/bar()<代码>a/b/c
相当于
(a/b)/c


请注意,C(和C++)不保证术语
a
b
C
的求值之间的顺序。例如,
foo()


从左到右的关联性



+1用于区分绑定和求值顺序。@如果
foo
bar
都使用了一些共享的副作用,该怎么办?@pst:那么行为是未定义的。@OliCharlesworth:不,行为是未指定的。未定义的行为意味着任何事情都可能发生,但这里的情况并非如此。要么先调用foo,要么先调用bar,这些调用不会相互交织。+1用于区分绑定和求值顺序。@ephemient如果
foo
bar
都使用一些共享的副作用会怎么样?@pst:那么行为是未定义的。@OliCharlesworth:不,行为是未指定的。未定义的行为意味着任何事情都可能发生,但这里的情况并非如此。在奇妙的数学科学中,*和/没有优先权:a/b=a*(1/b)和(ab)*c=a*(bc)@Hellfrost他们肯定有优先权:
1+2*3!=(1+2)*3
许多(但不是所有)编程语言以相同的优先级定义
*
/
,然后是从左到右的关联性。@pst-我的意思是相互重叠。。。有时英语很难:-P@Hellfrost:这是编程,不是数学。例如,
a/b*c
通常不等于
a*c/b
。。。我选择我的例子是因为一个原因:——)在奇妙的数学科学*中没有优先权:a/b=a*(1/b)和(ab)*c=a*(bc)@Hellfrost他们肯定有优先权:
1+2*3!=(1+2)*3
许多(但不是所有)编程语言以相同的优先级定义
*
/
,然后是从左到右的关联性。@pst-我的意思是相互重叠。。。有时英语很难:-P@Hellfrost:这是编程,不是数学。例如,
a/b*c
通常不等于
a*c/b
。。。我选择我的例子是因为一个原因:-)所以我假设在我的例子中我们有以下情况:ab/c/d,由于从左到右的结合性,它将是[(ab)/c]/d,简化后得到(ab)/(cd)。。正确吗?所以我假设在我的例子中我们有以下情况:ab/c/d,由于从左到右的结合性,它将是[(ab)/c]/d,简化后得到(ab)/(cd)。。对的