我是C语言的新手,所以plz sum1帮助我。 编写的C代码
int i=3;
printf("%d",++i + ++i);
Complier gvs O / P = 9。怎么样?
Thanx提前
答案 0 :(得分:4)
结果未定义。您在表达式中多次修改变量(或sequence point更准确)。
未定义序列点之间多次修改变量,所以不要这样做。
它可能是你的编译器,因为这个特殊情况决定了evalate
++i + ++i
为
++i
,产生4,留下我为4 ++i
,产生5,留下i为5(前面的步骤离开i为4,将其增加到5)另一个编译器,或者如果您更改优化级别,或者稍微更改代码,可能会产生不同的输出。