Postfix和preFIX运营商作为函数的参数 - 为什么会这样? [英] Postfix and prefix operators as function arguments - why is this happening?
本文介绍了Postfix和preFIX运营商作为函数的参数 - 为什么会这样?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我碰到一个很有趣的事实来在执行以下一个简单的C程序:
I came across a very interesting fact while executing the following a simple c program:
#include<stdio.h>
int main( )
{
int k=0;
printf("%d%d%d", k++, k, ++k);
return 0;
}
在它被作为显示输出窗口:1 1 1
in windows it was showing output as: 1 1 1
但在Linux(Ubuntu的),它是显示为:1 2 2
but in linux(ubuntu) it was showing as: 1 2 2
为什么会这样?
推荐答案
这是未定义的行为。当没有/模棱两可序列点。看到这个维基百科文章:
It's undefined behaviour. When there are no / ambiguous sequence points. See this wikipedia article:
http://en.wikipedia.org/wiki/Sequence_point
这篇关于Postfix和preFIX运营商作为函数的参数 - 为什么会这样?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文