读书人

问一个很高深的有关问题

发布时间: 2012-05-28 17:59:33 作者: rapoo

问一个很高深的问题
a=b++;就这个赋值语句,我一直以为觉得就是先把b的值赋值给a,然后b再加1对吧。然后今天忽然联系到了运算符优先级问题,又迷茫了。=号和++号优先级相同而且都是自右向左的,那么为什么不是b先++然后再赋值呢?难道在这里不适用了?请各位大大解惑下。

[解决办法]
首先,这并不是高深的问题。
++运算符优先级比=要高,所以编译器把b++看作一个整体
b++是一个表达式,这个表达式的返回值是b在++之前的值,同时使b的值+1
表达式的值返回后,把这个值赋值给a
结束

读书人网 >C语言

热点推荐