因为else会与他最近的一个没有else匹配的if匹配 因此第二个if和下面的else是一个整体,都属于第一个if内部包含的 而第一个if判断为假 所以就直接执行输出c
因为A不小于B,所以这个程序走的是ELSE C++。但是是运行后再++,所以在C==2时就输出了,输出完以后就变成3了,但是程序已经结束了。变成几无所谓了。
这样就清晰了
#include <stdio.h>
int main()
{
int a = 2, b = -1, c = 2;
if (a < b)
if (b < 0)
c = 0;
else
c++;
printf("%d", c);
return 0;
}