C语言计算题,关于自加自减运算符计算的问题?

计算(i++)+(i++)+(i--)+(++i)
假设初始i=2,你算得出答案吗?我可佩服了。

等于9

流程:自增、自减符先进行运算,但是由于前三个都是后缀,所以在执行玩改该行后才进行,所以先是2+2+2+(++i) ; 然后由于前缀的自增符(++i), 所以最后一个i变成3,
最后变成 2+2+2+3 = 9;
但是在执行该行后前三个自增、自减符进行运算,所以i(3)-->i(4)-->i(5) 最后 -->i(4)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-02-22
这是,M + +,+ +中的第一基准背面(这里是一个参考输出),然后从加拿大,
+米,与此相反,第一增加和之后的参考文献。例子:int m = 2时,A = M + m = 2时,首先分配到一个,然后从加拿大米。如果它是一个= +米,是前m +1,则这三个演习。

你上面说的printf(“%D”,M + +,+ + N);是第一输出M(12)且m = m +1 = 13,N = N +1 1首先= 35然后输出35,第二个printf(“%D \ N”,N + +,+ + M);第一输出N,因为最后一个是已经35加1,所以这里是输出35和n = N +1,M,加上第一和之后的输出是14。
第2个回答  2014-02-22
谁教你这样写的每种编译器都可能产生不同的结果,但你不能说它们之中的任何一种是错的,因为这个语句中四个自增/自减表达式的求值顺序不受操作符优先级和结合性的约束,并且自增和自减操作符本来就有副作用。
第3个回答  2014-02-22
undefined behavior未定义行为

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网