关于c ++中的struct初始化

kar*_*hik 3 c++ struct

我有像这样的结构

 typedef struct sample
 {
       double x,
       double y,
       double z
 }s1;
 s1 s;
Run Code Online (Sandbox Code Playgroud)

s变量中的内容是否会被初始化?

x,y,z的值是多少?

谢谢

Pra*_*rav 9

x,如果在函数范围内定义y,z则不会被初始化s.它们将包含一些未指定的值.在文件范围内,数据成员将初始化为其默认值.

但是,在C++中,您可以使用构造函数初始值设定项列表来初始化数据成员

例如

struct ABC
{
   int x;
   int y;

   ABC(): x(1),y(2){}
};

ABC s; // x and y initialized to 1 and 2 respectively
Run Code Online (Sandbox Code Playgroud)

在C++中,您还可以使用默认初始化和值初始化来初始化数据成员.

  • 在C++中,"不会被初始化"是错误的.这取决于. (2认同)