c - 解释一下输出?

标签 c increment decrement

#include<stdio.h>

int main()
{
int a = 10;

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

return 0;
}

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

最佳答案

编译器计算函数调用参数的顺序取决于编译器。

<小时/>

如果编译器从左到右(这可以解释你的输出):

  • a 为 10
  • prä-increment 表示 a 递增(值 11 作为参数传递)
  • 后递减意味着a稍后递减(值11作为参数传递)
  • 后递增意味着a稍后递增(值10作为参数传递)

但是如果我编译这个例如使用另一个编译器我可以获得不同的输出。

关于c - 解释一下输出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27203493/

相关文章:

c - 在建立连接之前检索本地 IP

Python迭代

c - 为什么以下 C 代码中的后递减运算符没有按预期工作? (具有 7 的值)

c++ - 模拟管理员用户时使用 AddIPAddress 时出现问题

c++ - C C++ - TCP 套接字类 : Receive Problem

c - Fopen 二进制文件失败

php - MySQL 增量并避免不正确的引用

c - 为什么这些构造使用增量前和增量后未定义的行为?

c# - 预减量和。递减后

java - 显示倒金字塔