为什么w和t运算结果为0,0?

img


1.s=w=t=0是什么意思?初始化吗还是赋值?
2.w=a-b运算出来不是-4吗
3.t为什么等于0,是因为s=w=t=0吗?
谢谢!

1、s=w=t=0,这里是对变量s,w,t赋值,都赋值为0;

2、w=a-b没有执行,w的值还是前面赋的值0,因为程序执行到第16行if(c<=0)这里,没有进去,因为c>0;

3、t=0, 的确是因为s=w=t=0,第22行的else分支执行不到,因为条件不满足。

测试代码如下:

参考链接:

#include <iostream>

using namespace std;

int main(void){
    
    int a,b,c;
    int s,w,t;
    // https://www.cnblogs.com/xiaochige/p/6704081.html
    // 1、这里是对变量s,w,t都赋值为0
    s=w=t=0;
    
    a=-1;
    b=3;
    c=3;
    if(c>0){
        s=a+b;
        cout<<"执行到1,s="<<s<<endl;
    }
    
    
    if(a<=0){  
        cout<<"执行到1.1"<<endl;
        if(b>0){
            cout<<"执行到1.2"<<endl;
            // 2,w=a-b没有执行,w的值还是前面赋的值0,因为程序执行到if(c<=0)这里,没有进去,因为c>0 
            if(c<=0){
                w=a-b;
                cout<<"执行到2,w="<<w<<endl;
            }
        }
    }else{
        cout<<"执行到2.1"<<endl;
        if(c>0){
            cout<<"执行到2.2"<<endl;
            w=a-b;
            cout<<"执行到3,w="<<w<<endl;
        }else{  // 3. t=0, 的确是因为s=w=t=0,这里的else分支执行不到,因为条件不满足            
            t=c;
            cout<<"执行到4,t="<<t<<endl;
        }
    }
    
    cout<<"最终值为:"<<endl; 
    cout<<s<<','<<w<<','<<t<<endl;
    
    return 0;
}

 

img

.s=w=t=0
其实就是
t=0;
w=0;
s=0;