天天看点

a==10,a++ + a--等于多少?

        今天在牛客网上做题的时候发现了如下截图的这样一道题:

a==10,a++ + a--等于多少?

        我的第一反应就是,这输出的不就是 20 吗,这么简单地题我怎么可能会错呢?(科学实验表明一般这样的时候都会惨遭打脸),因为我当时想的是 “++” “--” 在变量名的后面,那肯定是先运算再赋值啊,所以我觉得“++”和“--”应该是在运算结束后才可以自加1或者是自减一,好嘛,果不其然,我的答案错了。

a==10,a++ + a--等于多少?

        这是为什么呢?原来 "a++ + a--" 把它拆成 “a++” “+” “a--”,在进行 “a++” 时我们先运算,这时加号左边的值为 10,这个时候就变成了 “10 +” 的这样一个状态,我发现这里的先运算再赋值,并不是指 先运算完成然后再赋值,而是先进行运算然后再赋值,这里是我理解错了,有点想当然了,不然的话 “a++ + a--” 就是20,所以这时 a == 11,此时的状态为 “10 +” “a--” ,因为先进行运算再赋值,所以这里的 “a--” 为11,因此,这时状态就为 “10 + 11”,也就是答案 21 了。而这时a的值为10,因为已经进行了运算,所以要自减一。

a==10,a++ + a--等于多少?