搜索
查看: 873|回复: 3
打印 上一主题 下一主题

i*=i+++j*k+k^2%i++ 怎么分解啊

[复制链接]
楼主
发表于 2013-12-20 15:42:22 | 显示全部楼层
本帖最后由 rosynirvana 于 2013-12-20 15:48 编辑

第一个是未定义,在两个紧邻时点之间,一个变量i的值被改变了三次,优先级是
  1. i (*= (i++) + (j*k) + k^(2%i++))
复制代码

原因看下面

第二个同样是没有定义的,因为在两个紧邻的时点间, j的值被改变了2次如果要说优先级
  1. j=i ^ (k/(j++)) + i/4
复制代码

首先是中间的+++,编译器扫描一次会进行最大匹配, 所以会被parse为++  +,而不是+  ++
然后一元优先于二元,所以++优先于其他,然后四则优先于位运算
所以结果如上

ls那位想当然了,估计把^当成指数运算了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

广播台
特别关注
快速回复 返回顶部 返回列表