C语言运算符操作(自增自减)

[复制链接]
查看11 | 回复4 | 2013-10-27 17:07:24 | 显示全部楼层 |阅读模式
按照编译器原理解析的话,这个句子应该这样解析的,(k++) + ( j ) = 8, 这里我们不说优先级的问题,你可以查下~ 为什么你算出是9呢,我觉是你忘记了一个重点就是k++,这个是后加,也就是在整个表达式结束后k才加1,而在计算过程中k还是算原值5的,一般来说自加自减在单一的表达式中无先后之分,但是一旦到了复杂表达中就有了先后之分了...
回复

使用道具 举报

千问 | 2013-10-27 17:07:24 | 显示全部楼层
自增的运算得优先级大于加号的。所以只能是前者,要想是后者加括号。望采纳...
回复

使用道具 举报

千问 | 2013-10-27 17:07:24 | 显示全部楼层
k++是原来k的值先代入运算,再加1 所以k+++j为k+j=5+3=8且k=k+1=6...
回复

使用道具 举报

千问 | 2013-10-27 17:07:24 | 显示全部楼层
词法分析总是尽量匹配长。所以会先解析出++,然后是+...
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行