if(i ++)条件如何工作?

Anv*_*vay -2 c if-statement boolean-expression

可能重复:
后增量和预增量概念?

在这种情况下,我无法理解"if条件"如何与增量/减量运算符一起使用:

#include<stdio.h> 
void main() 
{ 
  int n=0; 
  if(n++) 
  { 
    printf("C-DAC"); 
  } 
  else if(n--) 
  { 
    printf("ACTS"); 
  } 
}
Run Code Online (Sandbox Code Playgroud)

它的输出是ACTS.

在IF情况下发生了什么?

Rib*_*oks 19

if (n++)它检查是否n不等于零,然后递增n

else if (n--)它检查是否n不等于零,然后递减n

你的第一个if语句不是真的(因为n是零),然后n递增,并且else if语句被检查(此时n等于1),if (1)是真的并且printf("ACTS")被调用