C语言中,m=0 A=(++m)+(++m); 此时,A=?,

问题描述:

C语言中,m=0 A=(++m)+(++m); 此时,A=?,
在VC中运行了,结果是A=4,m=2.一直想不明白为什么.
1个回答 分类:综合 2014-10-01

问题解答:

我来补答
这个和编译器自身处理过程有关系,不同的编译器,结果不尽相同,不必过于纠结.
比如
A = (++a) + (++a) + (++a);
有些编译器会先计算右边,最后赋值给A:++a;++a;++a;A=a+a+a;
有些编译器实际的过程变成:A=++a; A=A+(++a);A=A+(++a);
有些编译器实际的过程变成:A=(++a)+(++a); A=A+(++a);
有些编译器实际的过程变成:A=(++a); A=A+((++a)+(++a));
 
 
展开全文阅读
剩余:2000
下一页:fx的解析式