这里编译器如何决定变量b的值和数据类型?

Hmm*_*Hmm 0 c++

我无法理解变量 b 的内存分配是如何工作的,它背后是否有一些逻辑或者它只是另一个 UB 。b 的数据类型也变为整数。\

int a = 5,b;
cout<<b; // 16
Run Code Online (Sandbox Code Playgroud)

for*_*818 6

您可以在一条语句中声明多个相同类型的变量,其中变量之间用逗号分隔。因此,b被声明为int,并且未初始化,因此它具有不确定的值,并且使用其值是未定义的行为。

建议为每个语句声明一个变量,并始终初始化变量:

int a = 5;
int b = 0;
std::cout << b;   // prints 0
Run Code Online (Sandbox Code Playgroud)

在一个声明中,这将是

int a = 5, b = 0;
std::cout << b;  // prints 0
Run Code Online (Sandbox Code Playgroud)