在执行以下简单的 C 程序时,我发现了一个非常有趣的事实:
#include<stdio.h>
int main( )
{
int k=0;
printf("%d%d%d", k++, k, ++k);
return 0;
}
在 Windows 中,它显示输出为: 1 1 1
但在 linux(ubuntu) 中它显示为: 1 2 2
为什么会这样呢?
这是未定义的行为。当没有/不明确的序列点时。请参阅这篇维基百科文章:
http://en.wikipedia.org/wiki/Sequence_point http://en.wikipedia.org/wiki/Sequence_point
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)