递增前和递减后有什么区别?


回答 1:

无论是增量(++)还是减量(--)运算,它对pre或post的区别是运算是在表达式求值之前还是之后。 顾名思义,前递增表示在表达式求值之前该值将递增,而后递减表示在表达式求值之后该值将递减。

一个简单的例子是:

int a = 5; int b = ++ a; // a和b的值相同。6 int c = 5; int d = c--; // c为4,do为5

为了更深入地了解,我们可以使用下面的复杂表达式。

int a = 5; int b = a ++ + --a; // a = 5,b = 10 a = 5; b = a + ++ a; // a = 6,b = 11 a = 5; b = ++ a + a; // a = 6,b = 12

如果您能够回答以上问题,则认为您对这些一元运算符有很好的了解。 以最后一个表达式为例,b = ++ a + a,加法运算首先计算左操作数的值,然后计算第二个操作数的值。 第一个操作数的值为6(在此位置a的值将设置为6),第二个操作数的值也将为6(此时a的值将为6)。 因此,加法将为12,并将其存储在b上。

希望这能回答您的问题。


回答 2:

这个问题有点模棱两可。 前置和后置之间存在差异,增量和减量之间存在差异。 实际上有4个运算符,即递增前,递后后,递减前和递减后。 递增将值增加1,递减将其减少1。 至于pre和post之间的差异,差异在于返回的值。 在预操作中,操作完成,然后返回其值。 在post中,返回的值是操作之前的值。 以这个代码为例;

x = 3; // x的值为3

y = ++ x; // x递增到4,并为4分配值4

x = 3; //再一次,x有3

y = x ++; 保留3的值。 x递增到4。y分配的保留值3