--在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