C语言自增运算符疑问:为何y++运算后x值不符合预期?
C语言自增运算符(++)的执行逻辑解析
你搞混了C语言里后置自增和前置自增的执行顺序,这是初学者常踩的坑:
对于
y++(后置自增):
运算时会先使用y当前的原始值参与计算,等整个表达式计算完成后,再把y的值加1。
对应你的代码:x = y++ * 5,y初始是1,先拿1乘5得到5,把这个结果赋值给x,之后y才会变成2。所以x的结果是5,不是你以为的6。对于
++y(前置自增):
运算时会先把y的值加1,再用更新后的新值参与计算。
对应你的代码:x = ++y *5,y初始是1,先变成2,再用2乘5得到10赋值给x,这部分和你的预期一致。
简单记:后置是「先用后加」,前置是「先加后用」。
内容的提问来源于stack exchange,提问作者Omar Al Masry
相关产品推荐
相关产品推荐

