++y:先给y加上1,再进行其它运算。
y++:先让y进行其它运算,再给y加上1
比如下面的代码:
#include
int main()
{
int av = 0, bv = 0;
int r1 = ++av;
int r2 = bv++;
printf("%d\t%d\n", r1, r2);
return 0;
}
r1=1,是因为++av,先要增加1,再给r1赋值,所以结果是1。
r2=0,是因为bv++,先让bv赋值给r2,再给bv加1,所结果是0。
++y是先将y的值加1,表达式的值为加1后的y的值
y++是表达式的值为原来的y值,然后再将y的值加1
两个都能将y的值加1,主要区别在于表达式的值不同
例如,y=1
(1)x=++y,则y=2,x=2
(2)x=y++,则y=2,x=1
y=1,
m=++y;
m=y++;
这两个是有区别的,为什么呢?
因为第一个是, 先自加了,y=2, 然后赋值给m, m=2;
但是第二个是, 先把y赋值给m , m=1, 然后y再自加, y=2;
这样一看,区别是有的,虽然y的值在运算后,都是二。
但是m的值确实不一样的。
这样的好处在于,我们有时需要它先自增,我们有时也需要它后自增。灵活运用。
++y是先把y自身加上1,然后再运算含它的式子;y++是先运算式子,再把y自身加上1