A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© yaolv7 中级黑马   /  2016-4-6 22:40  /  533 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

  1. int a=1,b=2;
  2. int c=(a+b>3?a++:++b);
复制代码


为啥b=3了?不是只把b的值赋值给c而已么??

6 个回复

倒序浏览
因为b参与运算了啊
回复 使用道具 举报
这是自增和自减的问题,++(--) 在变量前 先自增(自减)再参与运算,在变量后,参与运算再进行自增(自减)
回复 使用道具 举报
c = (a+b>3?a++:++b)   先算 a+b的值为3  然后 三元运算 3 > 3?a++:++b  结果为++b 赋值给c因为++在前所以b先自加1 再赋值
回复 使用道具 举报
运行完以后得出++b,先加1后赋值
回复 使用道具 举报
额,看不懂呀,有没有大神能说明白点....{:2_39:}
回复 使用道具 举报
++在前边,先运算+1再赋值,   ++在后边,先赋值,再运算
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马