黑马程序员技术交流社区

标题: 运算时的优先级问题 [打印本页]

作者: 陈世伟    时间: 2012-4-6 10:43
标题: 运算时的优先级问题
int a=5,b=10,c;
c=a+++b;
如果这样书写,是应该理解成c=(a++)+b,还是c=a+(++b)

作者: ★心秒★    时间: 2012-4-6 11:01
我觉得这个问题你自己绝对可以自己解决的……   试试就知道了啊!!!!   现在就打开你的Studio,几分钟就搞定了哦!!
作者: 蒋敦方    时间: 2012-4-6 11:06
从左至右,先++,后+。
作者: 刘冬晓    时间: 2012-4-6 11:35
其实都不是,它的结果应该是a+b之后的值,等于15。
作者: 徐刚    时间: 2012-4-6 13:30
是c=(a++)+b,一元运算符优先级高于二元运算符。
作者: 曾驰文    时间: 2012-4-6 15:04
纠结 这个愚蠢问题干嘛 写程序时候 不知道 优先级 就用() 不过这个题目的答案是15
作者: 郭耀强    时间: 2012-4-6 15:46
蒋敦方 发表于 2012-4-6 11:06
从左至右,先++,后+。

不是这样的,你这样运算其实还是c=a+b;如果你这样写c=++a+b的话,那么就是a++先运算,然后在和b运算,就是说+的运算优先级大于++的运算优先级
作者: 黄国钢    时间: 2012-4-7 22:08
在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里写代码都是有格式的,容易判断,如果在记事本这类编辑器里不容易判断的话就加()确定优先级




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2