if跟分号后再跟else/else if语句与紧跟if语句有何区别?

这个else if是跟哪个if成对组合的呢?为什么不会执行else if的语句呢?有没有else的区别,对程序影响的原理是什么?

int main(){
    int a=-2,b=1,c=-2;
    if(a>b)
        if(b<0&&c<0)c=0;
        else if(b>c)c=c+2;
    cout<<c<<endl;
    system("pause");
    return 0;
}

结果:

img

去掉else之后:

int main(){
    int a=-2,b=1,c=-2;
    if(a>b)
        if(b<0&&c<0)c=0;
        if(b>c)c=c+2;
    cout<<c<;
    system("pause");
    return 0;
}

结果:

img

第二种第三个if是独立的,肯定会执行到。第一种else if是相对于第二个if的,如果第二个if成立,else if就不会执行到