【发布时间】:2018-12-21 00:57:51
【问题描述】:
#include <stdio.h>
int main(void){
int sum , x;
x = 1;
sum = 0;
while(x <= 10){
sum = sum + x;
++x;
}
printf("The sum is: %d\n", sum);
return 0;
}
我正在学习 C 并使用后增量和前增量语句整理一些示例。在此示例中,输出为 55。当我使用后增量 x++; 时,我也得到 55。我实际上期待得到不同的答案。有人可以解释为什么我得到相同的答案。
这段代码与将后/前增量放在sum = sum +x; 表达式上方有何不同
【问题讨论】:
-
不把结果赋值给任何地方都没有区别。
-
通常,与 x++ 相比,执行 ++x 所需的指令更少。但是,使用地点/方式的情况也会影响最终的效率
-
x++;和 ++x 具有相同的副作用。唯一的区别是它们的评估结果(即增量之前的 x 或增量之后的 x)。如果你把这个值扔掉,那就没有区别了。该标准规定表达式语句(例如
++x;)和for中的最后一个表达式被评估为void表达式。这意味着该值被丢弃,然后没有区别。
标签: c