以下程序如何在printf中工作

时间:2011-06-20 08:34:17

标签: c

这是一个程序

#include<stdio.h>
int main()
{
int i=2;
printf("I=%d i=%d\n",++i,++i);
}

我得到的输出是

4 4 

这对我来说有点令人惊讶。 那个++我是如何工作的?为什么在结果中提供4 4而不是3 4

只需阅读它,它与您将其标记为重复的主题不同。

2 个答案:

答案 0 :(得分:2)

未定义的行为。您不应该更改变量的值并在同一sequence point中多次读取。

答案 1 :(得分:-1)

您的程序与以下内容没有什么不同,因为++ i导致i在该行之前递增。

#include<stdio.h>
int main()
{
  int i=2;
  i++, i++;
  printf("I=%d i=%d\n",i,i);
}