int count=0;//count也可以是别的值,这是举个例子
count+=count++;
count它的值为多少?主要是帮我分析一下它到底是怎么执行的,是+=与++的比较优先级吗?但是++虽然级别高,可是它是在表达式执行完后再加1的呀,所以它到底是先执行还是后执行,我不知道,应该怎么分析?

解决方案 »

  1.   

    我给你把代码变化一下,你就能看明白怎么回事儿了:
    int count = 1;
    int c = count;
    count += c++;  System.out.print(count);
    不要被迷惑哦,结贴吧,都18.18%。
      

  2.   

    short s1=1;
    //s1=s1+1;产生不能转换错误,运算结果为int型
    s1+=1;//正确
    类似的还有上面的,这是为什么,到底是怎么执行的?
      

  3.   

    因为你s1是short型的  而1默认是int型的 所以会报错;然后下面这个+=就相当于是已经强制转换过的 因此没有错误。
      

  4.   

    这个问题一点都不菜啊int count = 1;
    count+=count++;这里体现了java和c语言的差别,java中规定表达式的操作顺序是从左到右,所以count = 1(先) + 1(后) = 2,
    而c中没有规定顺序,通常编译器规定为从右到左,所以再c语言中先计算count++, 于是count = 2(后) + 1(先) = 3