倾天 发表于 2015-8-26 23:18:40

C语言自增问题

#include<stdio.h>

void main()
{
        int j=5,q;
        q=(++j)+(++j)+(++j);
        printf("%d,%d",q,j);
}
以上C代码
j经过3次自增之后,值为8。所以q=8+8+8=24,可是在VC6中输出q的值却是22,这是为什么,求解。

倾天 发表于 2015-8-26 23:20:03

木有人,呜呜~~~~

倾天 发表于 2015-8-26 23:50:19

呜呜呜~~~

仰望天上的光 发表于 2015-8-27 08:07:52

因为C语言标准本来就没有规定这种操蛋的写法结果是多少。。。所以不同的C编译器自然就会对这个写法有不同的执行方式。
我们要做的不是去分析各个编译器的执行流程,而是要避免自己写出这种代码。

黑龍 发表于 2015-8-27 08:30:19

编译器优化问题

DECADE小明 发表于 2020-6-24 00:29:28

要不用Devc++试试
页: [1]
查看完整版本: C语言自增问题