【问题标题】:How to calculate values for -- / ++ [closed]如何计算 -- / ++ 的值 [关闭]
【发布时间】:2020-01-31 15:29:36
【问题描述】:

我正在尝试获取最后一个等式的值

int a = 0, b = 0, c = 0, x = 0, y = 0, z = 0;

a = b++ + ++c;
printf("a=%d\n", a);

x = y + 1 + ++z;
printf("x=%d\t", x);

printf("b=%d\t", --b);
printf("b=%d\t", b++);
printf("c=%d\t", c+1);
printf("c=%d\t", 2-c);

最后一个方程的值是多少,为什么?怎么计算呢

【问题讨论】:

  • 就我而言,我还没有明白问题出在哪里。
  • 一如既往,@Vlad,你比我快几秒钟!一定是时区问题?
  • 运行代码时得到了什么输出?

标签: c variables assignment-operator post-increment pre-increment


【解决方案1】:

这些陈述

printf("c=%d\t", c+1);
printf("c=%d\t", 2-c);

不要更改变量c的值。

仅在此语句中更改了变量

a = b++ + ++c;
          ^^^

如果你想在 printf 的调用中改变变量 c 那么你至少应该写

printf("c=%d\t", c = c+1);
printf("c=%d\t", c = 2-c);

那么输出会是这样的

a=1
x=2 b=0 b=0 c=2 c=0
                ^^^

没有这些变化,输出是

a=1
x=2 b=0 b=0 c=2 c=1 
                ^^^  

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2021-07-05
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-26
    相关资源
    最近更新 更多