解释输出?

阿努拉格
#include<stdio.h>

int main()
{
int a = 10;

printf("%d %d %d",++a,a++,a--);

return 0;
}

我稍微编辑了一下代码。现在的输出是:11 9 10现在更复杂了。

LMF

这取决于编译器以什么顺序评估函数调用的参数。


如果编译器从左到右移动(这将解释您的输出):

  • 一个是10
  • prä-increment表示a递增(值11作为参数传递)
  • 递减后,这意味着a稍后递减(值11作为参数传递)
  • 后递增,这意味着a会在以后递增(值10作为参数传递)

但是,如果我使用其他编译器进行编译,则可以得到不同的输出。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章