C语言运算问题

[复制链接]
查看11 | 回复1 | 2010-1-31 17:32:07 | 显示全部楼层 |阅读模式
三目运算,先将--x==y这个式子进行判断,如果成立,则a取值前者为++y,如果--x==y这个式子不成立则a取值后者--x。按你给的条件,a最后应该等于后者8。
回复

使用道具 举报

千问 | 2010-1-31 17:32:07 | 显示全部楼层
“ ? : ”优先级比“ = ”要高所以先执行“--x==y?++y:--x”...(当然,这个程序里面“==”的优先级最高)所以可以清晰点:a=((--x==y)?++y:--x)啦。先比较“--x==y”,因为初始化x=y=10;而--x是先减1后使用,所以此时x=9;y=10,一比较就知道不等啦。那么就取“:”后面的“--x”;再减1后使用,x=8;赋给a;所以a=8输出;
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行