c 中的数学执行顺序

问题描述 投票:0回答:1
int a=17,b=3,r=1;
r = a - a / b * 4 % 3 + r;

C 程序将按什么顺序执行:

  • A) / * % + - =
  • B) / * % - + =

你们能给我一个关于 C 程序执行这些命令的顺序的可靠解释吗?

kl-kl+jkljkl-jk-l-jkl-jk-l-jkl

c math operation
1个回答
0
投票

答案由优先级和关联性决定。

二进制

*
的优先级高于二进制
+
,所以

  • a + b * c
    相当于
    a + ( b * c )
  • d * e + f
    相当于
    ( d * e ) + f

二进制

+
和二进制
-
具有相同的优先级,因此我们参考结合性。它们是左结合的,所以

  • a + b - c
    相当于
    ( a + b ) - c
  • d - e + f
    相当于
    ( d - e ) + f

二进制

*
、二进制
/
和二进制
%
的想法相同。

组合示例:

  • a + b * c + d
    相当于
    ( a + ( b * c ) ) + d
© www.soinside.com 2019 - 2024. All rights reserved.