题目:7.若有定义int i=1,j=2;在Turbo中,则表达式(++i)+(i++)+(++j)+(--j)的值为(8).问答案为什么是8?我用的是turbocint i=1,j=2;int k;k=(++i)+(i++)+(++j)+(--j);问k的值是多少?答案为8答案绝对不是9如果不信你可以在turboc 2.0中试一下。我想问的关键是在遇到(++i)+(i++)时双操作是如何运行的(结合方向)。 《〈实际上对双操做数来说的是在一个语句中结束前加和后加的问题 。即如k=(++a)+(a++);a++是语句结束后在后加,++a是先加后计算再语句结束。〉》 谢谢各位了 。[size=2][/size]

热心网友

这个问题其实就是考你对++a 及 a++两种写法的不同(a=1)1。对于++a 此语句的结果是2,但是a本身的没有变仍然是12。对于a++ 此语句的结果是2,而且a自身的值也变为2

热心网友

其实这个问题很简单,你的右值里面的变量的值在变动,这就造成了加法交换律和括号的失效,举个例子:int a=3,b=5,c;c=a*b + ++b;cout <

热心网友

++i使用的是前缀表示法,是先使变量的值加一或减一,然后才进行赋值;i++使用的是后缀表示法,是先把变量的值赋过去,然后才使变量自身加一或减一.所以说(++i)=2,(i++)=1,(++j)=3,(--j)=1结果是7

热心网友

(++i)+(i++)+(++j)+(--j)是這?拥乃家?++i是加了1後再算;而i++是算了再加.j 也是這?拥?因?閕=1 j=2 所以(++i)是2 (i++)是1 (++j)是3 (--j)是1答案一定是7

热心网友

在Linux GCC 4.0下面答案是9!在TC下面答案是8这可能是编译器的原因不同的编译器产生的结果是不一样的关键是出这样的题是不合理的!