【问题标题】:How post-increment & pre-increment both are evaluated in function argument? [duplicate]如何在函数参数中评估后增量和前增量? [复制]
【发布时间】:2011-12-14 00:50:43
【问题描述】:

可能重复:
post and pre increment in c
Undefined Behavior and Sequence Points

在这里我想知道为什么会出现这个输出?? 任何人都可以以适当的方式向我解释一切

#include<stdio.h>
   int main() {
   int a=5;
   printf("%d %d %d",a++,a++,++a);
   return 0;
   } 

这个程序的输出是这样的

在 LINUX 中 7 6 8

【问题讨论】:

标签: c operators


【解决方案1】:

我们不能。这完全取决于编译器评估参数的顺序。

【讨论】:

  • 实际上这里的行为是未定义的——参数列表中的,不是一个序列点。
【解决方案2】:

未定义 - 副作用仅保证在 sequence points 完成。

【讨论】:

    猜你喜欢
    • 2011-05-11
    • 2014-07-18
    • 2014-12-09
    • 2013-05-04
    • 2021-08-22
    • 2012-09-15
    • 2017-04-18
    相关资源
    最近更新 更多