作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/01 20:31:27
C语言中,m=0 A=(++m)+(++m); 此时,A=?,
在VC中运行了,结果是A=4,m=2.一直想不明白为什么.
这个和编译器自身处理过程有关系,不同的编译器,结果不尽相同,不必过于纠结.
比如
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));