本站资源均收集整理于互联网其著作权归原作者所有,如果有侵犯您权利的资源请来信告知,我们将及时撤销相应资源
C语言中++运算级高于=运算级所以運行b=a++程序时,些计算a++得到a=3,然后将a=3赋值给b得到b=3。但运行程序却得到b=2哪位好心人给解释一下。
把++当成个函数下面是这2个函数的伪代碼
理解了吗,优先级还是一样的一定要了解接口的实现,也就是处理逻辑
b得到的是函数返回的return值,只是函数执行后a的值改变了
b=a++如果先赋值在运算的话就不符合运算优先级了啊
@gzk: 死读书怎么行呢, 有前置条件的
当 a 和 ++ 执行后,有人希望b是2也有人希望b是3 ,那么怎么办呢就人為规定下,++放前面是3放后面是2。
++ 优先级高于 = 先执行a变成了3,
接着执行=将=右边的值赋值给b,=右边的值是多少呢是2。
所以按照问题嘚描述,理解不对的点在于=不是将a的值赋值给b,而是将=右边表达式的值赋值给左边的变量!!!
可以这么理解a++在计算之后,a自增但昰返回a自增前的值。++a计算之后a自增,返回自增后的值
所以b=a++其实就是b等于a自增前的值。所以a=3b=2
以后才能回答,未注册用户请先
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。