gpt4 book ai didi

c - 在一行中初始化C中的所有变量和未初始化的值

转载 作者:太空狗 更新时间:2023-10-29 15:51:45 25 4
gpt4 key购买 nike

在C语言中,是

int x, y, z = 0;

和这个一样吗?

int x = 0;
int y = 0;
int z = 0;

此外,如果我只说 int a;,似乎 a 的值是零,即使它未初始化,但不是未定义,如 What will be the value of uninitialized variable?

最佳答案

不,两者不等同。

int x, y, z = 0;

在这一行中,xy 将具有不确定的值,而 z 被初始化为零。

然而,您可以将其保留在“一行”中,但要付出一些冗长的代价:

int x = 0, y = x, z = y;

现在所有三个都被初始化为相同的值(您给 x 的值)。要用一个变量初始化另一个变量,只需预先定义初始化器即可。即使在同一条线上也能正常工作。上面的内容还可以让您很容易地更改所有变量的初始值。

或者,如果你觉得以前的样式很难看,你可以让它在两行中工作:

int x, y, z;
x = y = z = 0;

但现在是赋值,而不是初始化。

Also, if I just say int a;, it seems that the value of a is zero even if it is uninitialized, but not undefined as described in What will be the value of uninitialized variable?

“不确定值”并不意味着“非零”。零并没有使它成为变量初始值的无效候选者。一些“有用的”编译器在调试版本中将变量初始化为零。如果您不注意编译器警告,它可能会隐藏严重的错误。

关于c - 在一行中初始化C中的所有变量和未初始化的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41918648/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com