BLINK 发表于 2015-4-13 14:43:35

看了C语言第二章节(5)之后有个问题

Vc++6.0的编译器编译
j=5
q=(++j)+(++j)+(++j) 的时候为什么算出来是22不是21?

aasd147789 发表于 2015-4-13 16:17:16

最好分开写

仰望天上的光 发表于 2015-4-13 17:36:51

你换个C语言的编译器,就有可能算出21了

l605361413 发表于 2015-4-13 23:14:37

可以反编译一下 看看汇编

BLINK 发表于 2015-4-18 12:00:43

aasd147789 发表于 2015-4-13 16:17
最好分开写

分开写确实没问题    这是编译器的问题吗还是其他原因

BLINK 发表于 2015-4-18 12:01:23

仰望天上的光 发表于 2015-4-13 17:36
你换个C语言的编译器,就有可能算出21了

编译器编译规则的问题?

仰望天上的光 发表于 2015-4-18 17:21:01

BLINK 发表于 2015-4-18 12:01
编译器编译规则的问题?

C语言标准仅仅规定了一些标准,很多地方没有明确,这些地方不同的C语言编译器可以采用不同的处理方式。好的程序员写出的C代码会主动规避这些和C编译器相关的内容,这样他们的代码在任何C编译器下得到的结果都是一致的。
页: [1]
查看完整版本: 看了C语言第二章节(5)之后有个问题