这个printf()函数如何输出这些值?

时间:2016-04-10 18:26:51

标签: c operators

const

此代码如何提供相同的输出?  这些递增和递减运算符的优先级是什么?

2 个答案:

答案 0 :(得分:0)

C像许多语言一样使用Eager评估(https://en.wikipedia.org/wiki/Eager_evaluation

这意味着printf的参数在调用printf函数之前被评估。

对于编译器,您的代码看起来像

#include<stdio.h>
void main()
{
  int a=10;
  a;
  --a;
  ++a;
  printf("%d %d %d\n",a,a,a); // output  10 10 10
}

答案 1 :(得分:-1)

它给你相同的输出因为 - - 打印a的原始值然后它变成9(或者用++ a打印11)