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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 陈世伟 黑马帝   /  2012-4-6 10:43  /  2123 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

int a=5,b=10,c;
c=a+++b;
如果这样书写,是应该理解成c=(a++)+b,还是c=a+(++b)

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

7 个回复

倒序浏览
我觉得这个问题你自己绝对可以自己解决的……   试试就知道了啊!!!!   现在就打开你的Studio,几分钟就搞定了哦!!
回复 使用道具 举报
从左至右,先++,后+。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
其实都不是,它的结果应该是a+b之后的值,等于15。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
是c=(a++)+b,一元运算符优先级高于二元运算符。

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
纠结 这个愚蠢问题干嘛 写程序时候 不知道 优先级 就用() 不过这个题目的答案是15

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
蒋敦方 发表于 2012-4-6 11:06
从左至右,先++,后+。

不是这样的,你这样运算其实还是c=a+b;如果你这样写c=++a+b的话,那么就是a++先运算,然后在和b运算,就是说+的运算优先级大于++的运算优先级
回复 使用道具 举报
在c#里要看你的书写格式了
  1. int a = 5, b = 10, c,d;
  2. c = a++ + b;//a++、+、b之间有明显的空格,先a++后+b
  3. c = a + ++b;//a、+、++b之间有明显的空格,先++b后与a相加
复制代码
从上面很容易看出优先级,在visual studio里写代码都是有格式的,容易判断,如果在记事本这类编辑器里不容易判断的话就加()确定优先级

评分

参与人数 1技术分 +1 收起 理由
宋天琪 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马