这要放在c板块,还不笑死人啊 !谁要解下这个啊?我记得是C语言书上的例题!
int i=3;
i=++i+++i+++i+++i+++i;
ConSole.WriteLine(i);
i=(i++)+(i++)+(i++)+(i++);
ConSole.WriteLine(i);只为引玉,大家不要抛砖!
顺便散分

解决方案 »

  1.   

                    int i = 3;
                    i = ++i + ++i + ++i+ ++i + ++i;
                    Console.WriteLine(i);
                    i = (i++) + (i++) + (i++) + (i++);
                    Console.WriteLine(i);
    按F11调试一下就知道了
      

  2.   

                    int i = 3; 
                    i = ++i + ++i + ++i+ ++i + ++i; //4,5,6,7,8
                    Console.WriteLine(i);//30 
                    i = (i++) + (i++) + (i++) + (i++); //30,31,32,33
                    Console.WriteLine(i); 
    ---++i,先加1后使用
     i = ++i + ++i + ++i+ ++i + ++i; 
    -------4,5,6,7,8和为30---i++,先使用后加1
    -------30,31,32,33 和为126
      

  3.   

    http://topic.csdn.net/u/20090731/22/e91059c5-077c-405f-855c-01e5655d9c7f.html?41133
    参考一下吧,这里也有高手说得清楚了
      

  4.   

    i++:i参与运算后自己+1; 
    ++i:i自己先+1,然后参与运算
    guoluren_kang
    我发现,我今天回的好几个帖子你都跑到我前面了......
      

  5.   

    按照SQL777的意思我调式了下,int i = 3; 
    i = (++i) + (++i) + (++i)+ (++i) + (++i); //不带括号C#竟然不行!
    Console.WriteLine(i);     
    i = (i++) + (i++) + (i++) + (i++); 
    Console.WriteLine(i);输出
    21
    90
      

  6.   

    SQL777,
    你是对的。前2个月,同学补考C,问了我这个问题,
    我还特意看了书,隐约记得
    对于
    i=3;
    i = ++i+++i+++i+++i+++i; 
    先自增,后统一赋值,i==35;
    i=3;
    i = (i++) + (i++) + (i++) + (i++);
    先统一赋值,后逐步自增i==30;难道是编译器的问题,解释这语句不一样?
    有点汗!~
    我的机子上没TC.这下脸丢大了。
      

  7.   

            static void Main(string[] args)
            {
                int i = 3;            i = ++i + ++i + ++i + ++i;//i = (++i) + (++i) + (++i) + (++i);
                Console.WriteLine(i);
            }.method private hidebysig static void  Main(string[] args) cil managed
    {
      .entrypoint
      // 代码大小       35 (0x23)
      .maxstack  3
      .locals init ([0] int32 i)
      IL_0000:  nop
      IL_0001:  ldc.i4.3
      IL_0002:  stloc.0  IL_0003:  ldloc.0
      IL_0004:  ldc.i4.1
      IL_0005:  add  IL_0006:  dup
      IL_0007:  stloc.0  IL_0008:  ldloc.0
      IL_0009:  ldc.i4.1
      IL_000a:  add  IL_000b:  dup
      IL_000c:  stloc.0
      IL_000d:  add  IL_000e:  ldloc.0
      IL_000f:  ldc.i4.1
      IL_0010:  add  IL_0011:  dup
      IL_0012:  stloc.0
      IL_0013:  add  IL_0014:  ldloc.0
      IL_0015:  ldc.i4.1
      IL_0016:  add  IL_0017:  dup
      IL_0018:  stloc.0
      IL_0019:  add  IL_001a:  stloc.0
      IL_001b:  ldloc.0
      IL_001c:  call       void [mscorlib]System.Console::WriteLine(int32)
      IL_0021:  nop
      IL_0022:  ret
    } // end of method Program::Main
    可以看到都是步骤:
    i+1=4 然后i+1=5,计算和4+5=9
    然后i+1=6 计算和9+6=15
    然后I+1=7 计算和15+7=22
      

  8.   

    static void Main(string[] args)
            {
                int i = 3;
                i =++i + ++i+ ++i + ++i + ++i;
                Console.WriteLine(i); 
            }.method private hidebysig static void  Main(string[] args) cil managed
    {
      .entrypoint
      // 代码大小       39 (0x27)
      .maxstack  3
      .locals init ([0] int32 i)
      IL_0000:  ldc.i4.3
      IL_0001:  stloc.0
      IL_0002:  ldloc.0
      IL_0003:  ldc.i4.1
      IL_0004:  add
      IL_0005:  dup
      IL_0006:  stloc.0
      IL_0007:  ldloc.0
      IL_0008:  ldc.i4.1
      IL_0009:  add
      IL_000a:  dup
      IL_000b:  stloc.0
      IL_000c:  add
      IL_000d:  ldloc.0
      IL_000e:  ldc.i4.1
      IL_000f:  add
      IL_0010:  dup
      IL_0011:  stloc.0
      IL_0012:  add
      IL_0013:  ldloc.0
      IL_0014:  ldc.i4.1
      IL_0015:  add
      IL_0016:  dup
      IL_0017:  stloc.0
      IL_0018:  add
      IL_0019:  ldloc.0
      IL_001a:  ldc.i4.1
      IL_001b:  add
      IL_001c:  dup
      IL_001d:  stloc.0
      IL_001e:  add
      IL_001f:  stloc.0
      IL_0020:  ldloc.0
      IL_0021:  call       void [mscorlib]System.Console::WriteLine(int32)
      IL_0026:  ret
    } // end of method Program::Main
      

  9.   

     static void Main(string[] args)
            {
                int i = 3;
                i =++i;
                Console.WriteLine(i); 
            }.method private hidebysig static void  Main(string[] args) cil managed
    {
      .entrypoint
      // 代码大小       15 (0xf)
      .maxstack  2
      .locals init ([0] int32 i)
      IL_0000:  ldc.i4.3
      IL_0001:  stloc.0
      IL_0002:  ldloc.0
      IL_0003:  ldc.i4.1
      IL_0004:  add
      IL_0005:  dup
      IL_0006:  stloc.0
      IL_0007:  stloc.0
      IL_0008:  ldloc.0
      IL_0009:  call       void [mscorlib]System.Console::WriteLine(int32)
      IL_000e:  ret
    } // end of method Program::Main