本帖最后由 asdf666 于 2010-02-01 16:00:10 编辑

解决方案 »

  1.   

    7
     
    i++ + ++i + i先算 i++  1  i=2++i      3   i=31 + 3 + i = 7
      

  2.   

    写这样的code,会被老板炒鱿鱼的。
      

  3.   

    不会吧  回去试试  JAVA语法 也会受编译器影响么
    如果真是  还真受教了
      

  4.   

    1+3+3 啊
    int j=i++ + ++i +i;i++ 这时候i 是1 后面用的会i++此时i是2了
    ++i 这时候 因为在使用前要加1 此时i成3了
    后面的i也是3了
    所以是1+3+3
      

  5.   

    仔细想了想语法,觉得应该是1+3+3,正确结果为:sum = 7
      

  6.   

    int i = 1;
    int sum = i++ + ++i + i;
    1 + 3 + 3 = 7
      

  7.   


    NO,java中就是1+3+3=7,c/c++中没有指定操作符运算顺序,所以编译器相关。
      

  8.   

    这个和编译器有关,在vs2008下是6
    因为各种编译器做了不同的编译器优化
    如vs2008优化之后是:

    int i = 1;
    int sum = i++ + ++i + i;
    vs2008是在处理完i++和++i后在运算,而i有一次前++,一次后++,那么三个加数的值就是2,那么sum=2+2+2,运算完sum之后,i的值就为3了,因为i有一次后++
    同理,那么
    i=1;
    sum = i++ + ++i + ++i ;
    sum实际运算时就是3+3+3
    这是vs的编译器的优化,这种问题没有去深究的
      

  9.   

    1+3+3
    不知道这个结果对不对啊?
    写个测试这个过程的程序// The begining of C program: test.c.// Header files included.
    #include <stdio.h>int main ( void )
    {
        int    i=1;
        int    sum=0;
        sum = i++ + ++i + i;
        printf ( "The summary of "i++ + ++i + i" is:%d\n",sum );
        return  0;
    }// The end of the C program: test.c.上面的测试只能得到结果,不能测试其中的过程啊,不知道哪位来给个更好的办法?
      

  10.   

    我目前只想到一个主意,要看变化,就debug了。
      

  11.   

    楼主问的是JAVA,我用的是C代码,所以,不知道对不对啊?
      

  12.   

    public class Ksk { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    int    i=1; 
        int    sum=0; 
        System.out.println(i);
        sum = i++;
    System.out.println(i);
    sum=sum+ ++i;
    System.out.println(i);
    sum=sum+ i;
    System.out.println(i);
    System.out.println(sum);
    }}
    答案:
    1
    2
    3
    3
    7

    sum=1+3+3=7
      

  13.   

    i++与++i的区别
    i++在使用i之后,使i的值加1,因此执行完i++后,整个表达式的为i,而i的值变为i+1。
    ++i在使用i之前,使i的值加1,因此执行完++i后,整个表达式和i 的值均为i+1。
      

  14.   

    int sum = i++ + ++i + i;
    i++为1,这个时候i=2
    所以++i=3,这个时候i=3
    所以=7.
      

  15.   

    呵呵。。测试以下不就知道了吗。。先输出i++,然后再输出++i,然后输出i。然后把整个式子输出不就的了?
      

  16.   

    记得刚开始学Java的时候经常考这些东西,现在看看真是无聊啊
      

  17.   

    看上去,java跟c式不一样的。
      

  18.   

    这个和编译器有关c# 结果是6
    vs2005 结果是7
      

  19.   

    无关,除非不符合java语言规范的编译器,当然,那样的编译器也不是java编译器了。