|
|
1
15
答案有两部分:
编辑: According to Wikipedia (所以这一定是真的8-“一些体系结构使用有符号的地址空间,并使用最负的值”。所以它不一定在所有的架构上都是零,但是不管它在给定架构上有什么值,这个值都被认为是无效的内存位置。 |
|
|
2
8
在.NET中,空值由“全零”位模式表示。 这一点很重要,因为这意味着正确创建新数组或对象只需要在开始调用构造函数、变量初始值设定项等之前擦除内存,为所有字段创建适当的默认值。
|
|
|
3
7
从C++背景中,当谈到指针时,NULL的标准定义是0。我认为其他语言也有类似的作用。 |
|
|
4
4
回答c#
生成此IL
如您所见,有一个ldnull操作码,用于处理null的特殊值 |
|
|
5
3
并非所有语言都使用特定的值,有时null是一个对象。动态语言通常有一个全局对象,它表示null,当对象引用没有值时,会将其设置为null。在这些情况下,可以对null对象进行方法调用,并创建相应的响应。 例如,在Ruby中有一个名为nil的单例和常见方法,如or、nil?和to_都有适当的默认实现,如果在null对象上调用它们,您会期望这些实现。 在Java中,null在虚拟机规范中被彻底指定。它的实际值并没有真正指定,而是当字节码指令看到它时应该发生什么。 Null通常通过将对象引用设置为指向nil对象来“处理”。但是抽象程度较低的语言可能使用零作为值,零是内存中的一个位置,但操作系统会停止程序的实际编写,而不是内核转储或以其他方式停止程序。 |
|
|
6
2
根据 Wikipedia ,某些语言中的空指针可能是内存中的固定地址,用户程序可能无法访问该地址,因此,如果某些对象指向该地址,则为空,否则为空。 |
|
|
7
1
RAM的第一页通常受到用户空间程序的保护。这样,如果程序员忘记检查空指针,当程序试图访问该位置时,程序至少会导致页面错误。
那么一会儿
|
|
|
8
0
http://googleit1st.com/search?hl=en&q=null+pointer 空指针或空引用 1 许多实现使用0值(所有位为零)来表示空指针,因为它位于大多数CPU地址空间的底部(尽管有些体系结构使用有符号地址空间并使用最负的值)。当尝试访问此内存地址时,许多操作系统都会生成异常。有些语言对这种指针使用其他术语,例如Pascal、Ruby和Lua使用nil 2 ,VisualBasic不使用任何内容,Python不使用任何内容。FORTRAN不认为NULL是常量,而是可以由NulLIFY指令设置并由相关函数测试的属性。 Taken from wikipedia |
|
|
A B · C#Excel自动调整列避免长文本时出错 1 年前 |
|
|
Megrez7 · C#ToArray转换合并为一行,导致数组元素更改 1 年前 |
|
Aycon · 在工厂方法中释放部分创建的对象的正确方法是什么? 1 年前 |
|
|
Sei · Avalonia/WPF将路由器传递到控制模板 1 年前 |