++ 运算符的位置,在后面是先取值,再加一。所以这行代码相当于:

d += p;
P += 1;

+= 运算符,相当于加法和赋值放一起简写了。它与以下代码是一模一样的:

d = d + p;
p = p + 1;

现代编译器,编译优化都是做得非常好的。所以过去有说法,说上面 += 比展开的写法要快,++ 比 += 1 还要快,个人认为现在已经意义不大了,不必抠这个。

有人说把手里的垃圾书扔掉,我同意。看就看好书,不要在 ++ 这种问题上纠结。比如什么 i+++++j 这种代码,你除了在这本垃圾书上,一辈子也不会写出这样的代码,如果你写了,你会被同事打死的。至于现在,你是在大学里要参加考试,那只能就题论题。你只需要知道,++在前面和在后面,是有区别的就行了,简单的代码,比如你问的这个,能看懂,就行了。实在不行,考试时,这分不要了,不就是一道题嘛,你考过也不差这一道题。实际写代码时,可读性,或者叫易读性,可维护性,是最重要的,没有之一。写这样的代码,只是少了一行而已,但是可读性会变得非常差,这是得不尝失的。我们的内存、磁碟,不在乎你多写这么几行代码,但是我们自己、我们的同事,非常在乎代码的可读性。这种哲学,与70年代时那种追求极简、追求能少写一个字母绝不多写一个字母的哲学,是完全不一样的。


赶紧把你现在手里的那本垃圾书丢掉

这样写没有任何意义

---------------------------以上为情绪化回答-------------------------

d +=p++

其实就是难懂版的

d += p;
p++;

它可以在考试中考察优先顺序

也可以在类似百行贪吃蛇这种以追求代码行数少为目的的情况下省一行代码

但是在实际的开发中,请不要这样写

哪怕在语法上并没有什么错误


不建议你搞懂,没有任何意义,c语言强大的表达力不是这么用的


作为一名oier,我想说

这样的代码就不应该存在!


推荐阅读:
相关文章