fud*_*din 0 c operator-precedence
在C-FAQ说的代码:
int i = 7;
printf("%d\n", i++ * i++);
Run Code Online (Sandbox Code Playgroud)
打印49.无论评价顺序如何,都不应该打印56?当我在Turbo C 3.0编译器上运行此代码时,它给出了56的输出.为什么会出现矛盾?
Jim*_*som 10
没有矛盾.问题是从用户角度出发,如果你仔细阅读答案,你会发现这句话
包含多个模糊副作用的代码行为一直未定义.
所以它可能会打印49或56.毕竟未定义的行为是未定义的.这就是没有真正矛盾的原因.您可能希望了解所谓的序列点.