求解释 flag1 = x > 0;这句是什么意思为什么布尔类型还能这么写


#include<iostream>
using namespace std;
int main() {
    bool flag1 = false, flag2 = true;
    //输出布尔常量和变量
    cout << "false:" << false << endl;
    cout << "true:" << true << endl;
    cout << "flag1=" << flag1<< endl;
    cout << "flag2=" << flag2 << endl;
    //布尔变量的赋值和输出
    int x = 1;
    flag1 = x > 0;
    cout << "flag1=" << flag1 << endl;
    flag1 = flag2;
    cout << "flag2=" << flag2 << endl;
    //布尔变量超界处理
    flag1 = 100;
    cout << "flag1=" << flag1 << endl;
    flag2 = -100;
    cout << "flag2=" << flag2 << endl;



}

先判断 x是否大于0
若是 则后面的表达式 x>0 为true 赋值给flag1 所以flag1为true
若不是 则表达式x>0为false 赋值给flag1 所以flag1为false