【问题标题】:Value of declared but uninitialized int variable in c [duplicate]c中已声明但未初始化的int变量的值[重复]
【发布时间】:2019-08-24 16:57:58
【问题描述】:

我是 C 的新手,使用 DevC++ 作为我的 IDE。

我了解到,如果变量已声明但未分配任何值,它们将使用随机值初始化(静态和全局变量除外,它们初始化为 0)。

但是当我尝试这个时:

int i, j, k;             
printf("%d %d %d", i, j, k);

打印出来了:

i 总是 0; j 的任何大随机整数(总是不同的); k 的大随机整数(总是相同)。

这是运行上述代码 5 次的输出:0 13308816 32764 0 12391312 32764 0 11408272 32764 0 11015056 32764 0 7541648 32764

但我认为这些都应该打印随机值(垃圾值),每次都不同(与 j 相同)。

【问题讨论】:

  • I learned that if variables are declared but not assigned any value they are initialized with a random valu 错了!!事实上,它们根本没有初始化为任何值。特定内存之前的任何值都将保持原样。
  • 有点跑题了,2019年应该没人用DevC++了。

标签: c int


【解决方案1】:

C 对对象的初始值一直非常具体。如果是全局的或静态的,它们将被归零。如果是自动,则该值为不确定

【讨论】:

  • 添加:“不确定值:未指定的值或陷阱表示”然后添加有关未指定trap的详细信息。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-22
  • 1970-01-01
  • 2011-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多