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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zzy1990 高级黑马   /  2015-3-10 13:55  /  1180 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

请各位指点一下
int a=2,int b=a+3*a++;
如何计算b的值?
int a=2,int b=(a++)+3*a;
如何计算b的值?

8 个回复

倒序浏览
本帖最后由 尚巾仁杰 于 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.

回复 使用道具 举报
尚巾仁杰 发表于 2015-3-10 22:09
++ 自增(后):属于先运算后自增。因此第一题b=2+3*2,先运算后自增,结果b=8;a=3.第二题在a++带有括号( ...

谢谢,理解了:handshake
回复 使用道具 举报
共同进步!!!:lol
回复 使用道具 举报
自增自减问题,如果是3*(++a)怎么解
回复 使用道具 举报
路文龙 发表于 2015-3-12 12:30
自增自减问题,如果是3*(++a)怎么解

++自增(前):是先自增再运算。在这个例子中,3*(++a)或者3*++a,即带不带小括号,a都是先自增在运算,假设int a=2;那么int temp=3*(++a);temp=3*3;即temp=9。
回复 使用道具 举报
这个问题 我在去试听的时候 看到了 老师说到 出这个题目的公司有2个目的  一个是不想要你  二是需要你对底层很了解
回复 使用道具 举报
++a先运算后执行;a++先执行后运算
回复 使用道具 举报
我知道,在C语言中I++和++I是有区别的,I++先运算后自加,++I先自加后运算。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马