为什么输出的又是3,不是2呢?

#include <stdio.h>
int main()
{
int a=5,b=4,c=3,d=2;
if(a>b>c)
printf("%d\n",d);
else if((c-1>=d)==1)
printf("%d\n",d+1);
else
printf("%d\n",d+2);
}

a > b的逻辑值为1, 1 > c为假,第一个if不进;c-1 = 2, 2 >= 2的逻辑值为真,也就是1,1 == 1为真,进入else if;打印d + 1,也就是 3