c - 未初始化的变量如何获得垃圾值?

标签 c variables compiler-construction programming-languages initialization

当我们创建一个变量但不对其进行初始化时,会将一些称为垃圾值的(随机)数字分配给它。

  • 这个值是如何分配给变量的?
  • 这背后的整个概念/机制是什么?
  • 这是否只发生在 C 中?

最佳答案

垃圾值未分配,而是值已经存在。当您分配一个变量时,您正在保留一 block 内存 - 直到您覆盖它,该内存将包含之前存在的任何“随机”信息。

打个比方,把分配一个变量想象成买一 block 土地——直到你用它做点什么(比如盖房子),这 block 土地上只会有已经存在的垃圾(比如一座摇摇欲坠的旧房子)。

有些语言会自动用零填充新分配的变量——这需要时间。在像 C 这样的更多“自己动手”的语言中,这种额外的行为是无法保证的(尽管在某些系统上,无论语言如何,内存都会被清除,例如作为一种安全措施)

关于c - 未初始化的变量如何获得垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422729/

相关文章:

c++ - C/C++多进程访问同一个变量的方法

c++ - 奇怪的 GCC 行为

c - 我的c程序运行完成后崩溃了

c - 如何使用函数指针数组?

c - C 中的 3 位数字生成器

c - 将输出从 gdb 重定向到一个文件

PHP变量变量困惑

java - Java项目

php - 使用带有下拉选项的 php 更新 mysql 数据

iphone - 确定代码中的错误来源-iPhone