C语言--b,为什么y=4啊

img


兄弟萌为什么y=4啊,前面的都懂,就y=4想了半天没想明白……

--在b的前面,先计算两次--b,b变成2,然后y = b*b = 2*2=4
不同的编译器处理可能有差别。

因为编译器为优化算法
是先--b两次之后再取b的值,两次--b之后,b是2,2*2=4
不是--b一次之后取b一次值,再--b一次之后再取b一次值

--b是先减后运算b原来是4,经过--b*--b减了两次变成2之后再运算乘法即2*2=4

因为--b是先减一再使用,减了两次等于2,2乘2等于4

【若所有帮助,望给个采纳,谢谢】
1、这里考查的运算符优先级的知识点

2、常见运算符优先级
1)圆括号()
2)逻辑非运算符
3)自增增减运算符,--或++
4)乘法运算符,*
5)加减运算符,+-

3、由上面可知
b=4,--b*--b,需要完成两次减1操作,然后就是2*2=4

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632