/usr/lib
让我们假设a和b的输入值为2(对于它们两者)。
我研究了上面的程序,但输出时为4 1 0,a = 4,b = 1,c = 0。
但是,上面的计算部分说a = a + b-1将是a的值是3,现在a的新值是3。但是对于b来说值仍然是2,因为我们没有分配新的有价值。
我对输出非常困惑。
答案 0 :(得分:2)
a+1
,a++
和++a
之间是有区别的。详细信息here。
因此,当你说
a = a + b--;
您实际上是在说
a = a + b;
b = b - 1;
如果你说
a = a + --b;
它变成
b = b - 1;
a = a + b;
如果你说
a = a + (b-1)
它会执行您的想法:a = a + b - 1
。 b
的值此后不会更改。
答案 1 :(得分:1)
开头,a和b均为2
然后,您执行a = a + b--;
。
减量运算符位于b
之后,因此其计算结果为:
a=a+b;
b=b-1;
此后,a为4,b为1。
a不小于b,因此c为0。
注意:
如果它是a = a + --b
,它将计算为
b=b-1;
a=a+b;
因为--
是在评估开始时执行的。