Postfix和preFIX运营商作为函数的参数 - 为什么会这样? [英] Postfix and prefix operators as function arguments - why is this happening?

查看:118
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆