黑马程序员技术交流社区

标题: 有关运算符的问题 [打印本页]

作者: zzy1990    时间: 2015-3-10 13:55
标题: 有关运算符的问题
请各位指点一下
int a=2,int b=a+3*a++;
如何计算b的值?
int a=2,int b=(a++)+3*a;
如何计算b的值?
作者: 尚巾仁杰    时间: 2015-3-10 22:09
本帖最后由 尚巾仁杰 于 2015-3-10 22:29 编辑

++ 自增(后):属于先运算后自增。因此第一题b=2+3*2,先运算后自增,结果b=8;a=3.第二题在a++带有括号()后提高了自增的优先级,所以第一步先是a的值为2,然后a自增为3,并将自增后的结果参与后面的运算,因此b=2+3*3。所以结果b=11;a=3.


作者: zzy1990    时间: 2015-3-11 13:02
尚巾仁杰 发表于 2015-3-10 22:09
++ 自增(后):属于先运算后自增。因此第一题b=2+3*2,先运算后自增,结果b=8;a=3.第二题在a++带有括号( ...

谢谢,理解了:handshake
作者: 尚巾仁杰    时间: 2015-3-11 21:56
共同进步!!!:lol
作者: 路文龙    时间: 2015-3-12 12:30
自增自减问题,如果是3*(++a)怎么解
作者: 尚巾仁杰    时间: 2015-3-12 23:26
路文龙 发表于 2015-3-12 12:30
自增自减问题,如果是3*(++a)怎么解

++自增(前):是先自增再运算。在这个例子中,3*(++a)或者3*++a,即带不带小括号,a都是先自增在运算,假设int a=2;那么int temp=3*(++a);temp=3*3;即temp=9。
作者: luke_yang    时间: 2015-3-13 19:14
这个问题 我在去试听的时候 看到了 老师说到 出这个题目的公司有2个目的  一个是不想要你  二是需要你对底层很了解
作者: whymerain    时间: 2015-3-14 11:02
++a先运算后执行;a++先执行后运算
作者: TanQiao    时间: 2015-3-14 15:28
我知道,在C语言中I++和++I是有区别的,I++先运算后自加,++I先自加后运算。




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