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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© yangxin540 中级黑马   /  2013-8-13 13:35  /  1393 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 yangxin540 于 2013-8-14 00:35 编辑
  1. int a = 2;

  2.          int b = a + 3 * a++;//b = 8
  3.          int c = a + 3 * ++a;//c = 15

  4.          int d = (a++) + 3 * a;//d = 19
  5.          int e = ++a + 3 * a;//e = 24
  6.          
  7.          int f = ++a - 3*a;//f = -14
  8.          
  9.          int g = a-- + 3*a;//g = 25
  10.          int h = a-- + 3*a--;//h = 21
  11.          int i = a-- + 3*--a;//i = 10
复制代码
这些输出的结果让我很是费解呀,求解释!

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

6 个回复

倒序浏览
             楼上应该是连续运行的
             int b = a + 3 * a++;//b = 8                  b = 2+3*2     =8         此时内存中 a=3

04.         int c = a + 3 * ++a;//c = 15                 c= 3+3*4      =15                         a=4

05.

06.         int d = (a++) + 3 * a;//d = 19              d=4+ 3*5     =19               a++之后a=5      此时 a=5

评分

参与人数 1技术分 +1 收起 理由
薛鹏鹏 + 1

查看全部评分

回复 使用道具 举报
还是写完吧
              int e = ++a + 3 * a;//e = 24
                  e= 6 +3*6                 a=6

09.         int f = ++a - 3*a;//f = -14
                 f= 7-3*7              a=7
10.         

11.         int g = a-- + 3*a;//g = 25
                  g=7+3*6              a=6
12.         int h = a-- + 3*a--;//h = 21
                  h= 6+3*5             a=4
13.         int i = a-- + 3*--a;//i = 10
                   i=4+ 3*2             a=2
回复 使用道具 举报
べPNヤ 发表于 2013-8-13 14:06
还是写完吧
              int e = ++a + 3 * a;//e = 24
                  e= 6 +3*6                 a= ...

恩,明白了,原来是这样的:D
回复 使用道具 举报
邪恶飞猫 发表于 2013-8-13 14:41
首先要明确,i++和++i是有区别的。i++是先运算后自增,++i是先自增后运算,而且++的运算优先级很高,比+和= ...

恩,明白了,连续的运行,a的值也在改变
回复 使用道具 举报
亲,如问题已解决请将分类的未解决改为已解决。

以后的问题贴也要及时更改分类哦~


保持队形,谢谢合作
回复 使用道具 举报
杨璐敏 发表于 2013-8-13 22:30
亲,如问题已解决请将分类的未解决改为已解决。

以后的问题贴也要及时更改分类哦~

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