大神何在?
c++吧
全部回复
仅看楼主
level 9
影圣天
楼主
自增++后置时为什么要先运算后变化?比如i=x++ 先说明一下,后置++的优先级为1,而赋值=的优先级为14,那么++的优先级高,不是先变化后运算的吗?大神求教
2015年10月13日 23点10分
1
level 11
陌湘萘
这分前辍和后辍
2015年10月13日 23点10分
2
影圣天
前缀知道,后缀不懂
2015年10月13日 23点10分
影圣天
2015年10月13日 23点10分
陌湘萘
https://tieba.baidu.com/p/3677294488?share=9105&fr=share
2015年10月13日 23点10分
陌湘萘
++i
2015年10月13日 23点10分
level 11
陌湘萘
爪机码字,有点慢,容我细细禀来。
2015年10月13日 23点10分
3
影圣天
感谢
2015年10月13日 23点10分
level 11
陌湘萘
此处自加优先于赋值,改变的是x本身的值,是以称之为自加。
例,x=3
i=x++;
i=3,x=4。
2015年10月13日 23点10分
4
影圣天
既然自加优先级高,为何不先x变化,x=4 i=4呢?
2015年10月13日 23点10分
影圣天
?
2015年10月13日 23点10分
陌湘萘
@影圣天
变化的是楼下一种,这里加号在后面,所以是后辍,先用后加(同理,前辍先加后用)
2015年10月13日 23点10分
影圣天
我已经深深的记住了他的运算顺序,但是我不能用优先级的规律解释他
2015年10月13日 23点10分
level 11
陌湘萘
x=3
i=++x;
i=4,x=4。
2015年10月13日 23点10分
5
level 11
陌湘萘
自加会引起副作用,所以我们不常用(学到后来你就知道其实增值在内部是不确定的,但我们学基础时就不要追究这么深了)
我们有时也会用这类自加来提高程序的精简性~
2015年10月13日 23点10分
6
level 11
尘子😳
什么叫做先运算后变化?
2015年10月13日 23点10分
7
影圣天
就是先算x=i,在算i+1
2015年10月14日 03点10分
尘子😳
@影圣天
你直接说先取值后自增不就行了
2015年10月14日 04点10分
影圣天
书上就是这么说的
2015年10月14日 04点10分
level 1
哥们儿会_臭臭
这跟优先级没什么大关系,其实是这样的
每一步运算都有一个返回值,x++就是返回值是x,然后x去加一了
++x就是,x去加一了,然后再返回x
就是x++是我告诉你我这一步答案是x,然后我自己跑到一个角落把自己加了一。
就是++x是我自己跑到一个角落把自己加了一。然后我告诉你我是多少。
2015年10月14日 04点10分
8
影圣天
听了你们的答案,我已经明白了:书上说的不完全是对的!感谢
2015年10月14日 04点10分
level 12
grf123
明白啥呀,优先级说的是运算符的顺序。前缀还是后缀区别的是执行运算符的结果。
按运算符顺序,先执行x++返回的结果是x,再执行赋值语句,所以x没变。这条语句执行完之后,再执行后缀++,把x加一。
后缀的意思是先返回,再自增。
前缀则是先自增,返回的是自增的结果。跟运算符的优先级没有关系,也并不冲突。
一条语句看不清楚的话,自己写个函数,把汇编调试打开一条一条看。
2015年10月14日 04点10分
9
影圣天
比较了下,还是大神你最讲的好!赞一个!
2015年10月14日 04点10分
1