结构可以这样初始化吗?

Can struct be Initialized this way?

下面是我的代码,我定义了一个包含 intstring 变量的结构。我记得在 c/c++ 中, struct 可以像这样初始化 A a={0},我在下面这样做,但是,当我打印出它的字符串成员 b 时。程序崩溃并在抛出一个实例后调用终止 'std::logic_error' what(): basic_string::_M_construct null not valid。但是,如果我将字符串 b 更改为 int b ,它不再崩溃了。有谁知道原因吗??

struct example
{
    int a;
    string b;
};

int main()
{
    example q={0};
    cout<<q.b<<endl;
}

您的代码运行良好,请检查执行情况 here。 您的输出将为空,因为 C++ 中的字符串默认为空,即默认情况下,C++ 中字符串的大小为 0。因此,没有输出。