5

我有这行简单的代码:

int x;

x自动具有值 1。我没有将其设置为任何值,但是当我调试时,它显示x为 1。

anint的默认值为 1 吗?

4

4 回答 4

22

No.int有一个未定义的默认值。它恰好是1在这种情况下。它可以很容易地是-18382or220xBAADF00D

始终在 C 中初始化变量。

于 2011-05-12T15:50:30.400 回答
6

初始值是未定义的,在这种情况下,将是在x开始使用它之前发生在该内存位置的任何内容。

(根据周围的代码,您可能会发现在您的特定情况下它总是1,但您不能确定这一点。)

于 2011-05-12T15:50:19.183 回答
5

不,相反,x根本没有默认值。您看到的是创建变量时放置的垃圾。

于 2011-05-12T15:50:59.490 回答
-1

在初始化程序运行之前,实例变量被初始化为 0 ..

参考:

于 2014-05-08T08:31:50.100 回答