【发布时间】:2017-06-28 18:50:13
【问题描述】:
这些表达式中的空格是否有任何意义:
假设:
int a = 1;
int b = 2;
1)
int c = a++ +b;
或者,
2)
int c = a+ ++b;
当我在 Visual Studio 中运行这两个时,我得到了不同的结果。这是正确的行为吗?规范是怎么说的?
一般来说,应该先评估什么,后增量还是前增量?
编辑:我应该这么说c =a+++b;
不在 Visual Studio 上编译。但我认为应该。 postfix++ 似乎首先被评估。
【问题讨论】:
-
这是正确的行为。
-
你应该问这是做什么的:
int c = a+++b; -
@acraig5075 是的,但问题是,序列点在这里无关紧要。
-
一个重要的规则是运算符不能有空格。除此之外,请参阅stackoverflow.com/questions/7485088/…
-
@BoBTFish :您显然不是 FORTRAN 的老程序员。过去,空格仅在 Hollerith 常量和带引号的字符串中相关。您真的可以将 FOOBAR() 称为 FOO BAR()。
标签: c++ operators spaces post-increment pre-increment