【问题标题】:What's the output if output use ++x instead of x++? [closed]如果输出使用 ++x 而不是 x++,输出是什么? [关闭]
【发布时间】:2012-10-25 00:05:41
【问题描述】:
Int y = 0
Int x = 5
y = x++

与做类似的事情相比

Int y = 0
Int x = 5
y = ++x

特别是,我在问后期增量的位置通常如何影响输出

【问题讨论】:

标签: c++


【解决方案1】:

当运算符在变量之前时,它会(并且应该在编写自己的运算符时)执行操作然后返回结果。

int x = 1 ;
int y = x++ ; // y = 1, x = 2
int z = ++x ; // x = 3, z = 3

我建议使用临时程序和输出来看看事情是如何运作的。 当然,一本好书是最好的;)

【讨论】:

    【解决方案2】:

    x++ 在运算后增加 x。

    Int y = 0 Int x = 5 y = x++
    

    Y 将等于 5,同时将 x 设置为等于 6。

    Int y = 0 Int x = 5 y = ++x
    

    Y 等于 6,X 也等于 6。

    【讨论】:

      【解决方案3】:

      在第一种情况下,y = x++,x 是后递增的。也就是说x赋值给y后,其值增加了。

      y = 5 和 x = 6。

      在第二种情况下,y = ++x,x 是预先递增的。 x 在赋值给 y 之前增加了值。

      y = 6 和 x = 6

      【讨论】:

        【解决方案4】:

        如果前缀/后缀运算符是表达式或函数求值的一部分,它决定了修改变量的顺序,在求值之前(前缀)或在求值之后(后缀)。

        在第一种情况下,yx 递增之前分配。

        int y = 0;
        int x = 5;
        y = x++;
        

        在第二种情况下,x 首先递增,然后分配y

        int y = 0;
        int x = 5;
        y = ++x;
        

        注意:如果在等式两边的数组索引中使用,the behavior may be undefined

        【讨论】:

          【解决方案5】:
          pre-increment (++X):表示 X 的值将在分配之前递增。 在您的示例中,Y 的值将是 6,因为 X 首先递增(5+1)然后分配给 Y。 post-increment (X++):表示 X 的值在赋值后会递增。 在您的示例中,Y 的值将为 5,因为 X 在分配给 Y 后会增加。 您可以将它们比较为: ++X = 就地增量 X++ = 增量发生在临时位置 (Temp=5+1),在 Y 设置为其当前值 (5) 后分配给 X (X=Temp)。 Y = X++ 可以表示为: > 温度 = X+1 > Y = X > X = 温度

          【讨论】:

            猜你喜欢
            • 2015-04-09
            • 2013-02-03
            • 2013-02-12
            • 2018-08-09
            • 1970-01-01
            • 2012-10-12
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多