今天参加腾讯qq的笔试了,想荧屏java开发,结果试卷上全是c或c++的题,让我很是郁闷,一上来见一题就让我很郁闷,先给大家分享下:
下面的代码哪个不能通过编译:
int a = 8;
A.  a +=(a++);
B.  a +=(++a);
C.  (a++) +=a;
D.  (++a) +=(a++);
建议大家先看看这个题分别在vc和java虚拟机上运行下,有高手能告诉我答案吗,而且,希望您能告诉我为什么在vc下能编译通过而在java虚拟机上不能???谢谢了~~~~~~~~

解决方案 »

  1.   

    java赋值时,左边必须是变量c和d选择在java中不能通过编译,java把(a++),(++a)看成表达式而不是变量a a +=(a++);  a = a + a++; //16 8 + 8
    b a += (++a); a = a + ++a; //17 8 + 9
      

  2.   

    恩,确实如此,但为什么d答案可以再vc下编译通过,而java下就不行呢,而且c答案为什么不能在vc下编译通过呢???
      

  3.   

    ..........这一小段程序在c和java里几乎就没什么区别~~~~~~~~
      

  4.   

    int a = 8;
    A.  a +=(a++);
    B.  a +=(++a);
    C.  (a++) +=a;
    D.  (++a) +=(a++); 
    好多公司都喜欢出这种没有实际价值的题目,以显示自身公司的实力,让人以为这种公司技术实力很高。