自增自减运算符问题

来源:4-14 自增自减运算符

Island27

2018-10-06 23:05:43

int x = 7;

        NSLog(@"%d",x--);

        NSLog(@"%d",--x);

        NSLog(@"%d",x++);

        NSLog(@"%d",++x);

为什么打印结果出来 是 7 5 5 7呢 真的不怎么明白这一节

写回答

3回答

CSRM

2018-10-08

x--是先输出的x的值,也就是7,但是在输出后做了7-1的运算,此时的x值为6;

--x是将此时的x先减去1,也就是上一个结果6-1=5,所以输出5,此时x值为5;

x++,同第一条,也是先输出x目前的值,上一个结果x是5,所以输出5,但在输出后做了5+1但运算,此时x值为6;

++x,是将x先加1,也就是上一个结果6+1=7,所以输出7,此时x值为7.

0

无毁湖光

2018-10-08

x--是先执行在运算,--x是先运算执行。

第一行,先执行在运算,所以等于7

第二行,此时x的值是6(上一行已经7-1了),由于是--x,先运算在执行,所以在6-1,所以是5.

第三行:x++先执行后运算,所以先输出5,然后5++,x=6

第四行:++x先运算后执行,所以是6+1,最终输出7

0

Tender10

2018-10-07

首先明白一点,x--、x++是先运算,在加减。--x、++x是先加减,在运算。

1、x--,因为先输出x的值,所以是7,但是输出之后做了减一操作,x就是6

2、--x,因为是先减一,因为上一次计算完以后变成了6,所以这次减一变成5,然后输出5

3、x++,因为先输出5,然后加1,变成6

4、++x,因为先加1,变成7,然后输出7

最终结果,7,5,5,7

0

0 学习 · 1878 问题

查看课程