(我知道 null 是什么以及它的用途)
问题:好的,假设我们用任何语言引用一个对象。计算机在内存中留出一点 32 位(或其他大小,取决于计算机的设计)空间供该引用。该内存可以分配给表示对象在内存中的位置的值。但是当我将引用设置为 null 时,它到底有什么值(value)呢? (引用集中的各个位是什么)这些位是否刚刚清零?但这不也是内存中的一个位置吗?计算机如何判断引用包含 null 而不是对对象的引用?
我知道这不是一个“重要”的问题,但我很好奇它是如何工作的。
谢谢大家 :D
最佳答案
答案分为两部分:
- 值为零(即值中的所有位均为零)
- 零永远不会被视为有效地址。
第二点是为什么要回答您的问题“但那不也是内存中的一个位置吗?”是“否” - 这只是一个规则,即零不被视为有效的内存位置。尝试访问它会导致异常。
编辑: According to Wikipedia (所以它一定是真的 8-)“一些架构使用带符号的地址空间并使用最负值”。因此它不一定在所有架构上都为零,但无论它在给定架构上有什么值,该值都被视为无效内存位置。
关于c# - null 到底有什么值(value)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1278870/