设整型变量a.b.c均为2,表达式a+++b+++c++的结果是?
麻烦大家帮忙分析哈

解决方案 »

  1.   

    6
    先算a++b++
    c++
    因为++在后边  故为2+2+2  如果在前边应该是9  ++a + ++b + ++c   这根具系统设定的不同而不同
      

  2.   

    分析个P,这个属于编译器没有定义的范畴。
    你分别用 BCB VC GCC C# Java 运行,结果都不一样。
      

  3.   

    我觉得这些小程序应该自己动手运行,因为你这一次是问的,那么下次再遇到相似类型的题呢?
    只有自己掌握了计算的方法,那知识才是你自己的。
    ++x  是先将x加一个单位,然后再将计算结果作为表达式的值
    x++  是先将x作为表达式的值,然后再将x加一个单位
    如int x,y;
    x=5;y=++x   结果是x=y=6
    x=5;y=x++   结果是x=6,y=5
      

  4.   

    帅哥,给解释一下呗,看了一下楼主的问题,再看看回答确实挺无聊的,不过你这个是亮点a+++b
    为何一定会被当做
    (a++)+b
    而不是
    a+(++b)
    ?
    BTW,貌似大家看了这种东西火气都很大啊
      

  5.   

    因为规则就这么定的...C#中,x++是基本运算符,具有最高优先级,比一元运算符++x优先级高...
      

  6.   

    其实我觉得这不是个运算优先级的问题
    因为优先级是在已知运算符的情况下才有效而这个问题是的背景是运算符都还尚未确定问题应该是编译器的分词规则a+++b
    会被分解为
    a
    ++
    +
    b
    还是会被分解为
    a
    +
    ++
    b也就是他的分词原则是什么?