当我们创建一个变量但不对其进行初始化时,会将一些称为垃圾值的(随机)数字分配给它。
- 这个值是如何分配给变量的?
- 这背后的整个概念/机制是什么?
- 这是否只发生在 C 中?
最佳答案
垃圾值未分配,而是值已经存在。当您分配一个变量时,您正在保留一 block 内存 - 直到您覆盖它,该内存将包含之前存在的任何“随机”信息。
打个比方,把分配一个变量想象成买一 block 土地——直到你用它做点什么(比如盖房子),这 block 土地上只会有已经存在的垃圾(比如一座摇摇欲坠的旧房子)。
有些语言会自动用零填充新分配的变量——这需要时间。在像 C 这样的更多“自己动手”的语言中,这种额外的行为是无法保证的(尽管在某些系统上,无论语言如何,内存都会被清除,例如作为一种安全措施)
关于c - 未初始化的变量如何获得垃圾值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1422729/