运算符的优先级

运算符的优先级

根据运算符的优先级表 ++ 是在赋值=之前的,那为什么num1=num1++不先加后赋值呢?特别在有括弧的情况下()优先级最高,如 int y = (x++) + 5,为什么y的值是x+5,而不是x+1+5?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
提问者 ALGO_cui 2017-10-13 12:12:08

谢谢回复,我知道,可是讲的是结论性的知识,它的机理是什么,因为根据运算符优先顺序表,++在赋值=之前,而且是之前很多,++的优先级别很高,那为什么num2=num1++要先赋值给num2?我觉得课程里的讲解并没有回答我的问题,因为在2-5节中并没有和运算符优先顺序表做对比。谢谢!

  • 你可以把它当做一个特殊的语法规则来记忆,它和运算符的优先级没有必然的联系。
    2017-10-13 16:07:55
  • 提问者 ALGO_cui 回复 一叶知秋519 #2
    ok,好的,谢谢老师
    2017-10-13 16:35:52
清风明月l 2017-10-13 10:53:42

因为++有两种,一种是x++一种是++x,而x++的自加是在算式完成后自加。如果写成int y=(++x)+5 ,则y=x+1+5

一叶知秋519 2017-10-13 10:47:22

你好,你可以再看一下2-5小节10s开始,对于自增自减运算符的讲解。如果还有疑问,可以再次提问。祝学习愉快~

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师