指针(信息学):修订间差异

求闻百科,共笔求闻
添加的内容 删除的内容
(批量替换文字)
→‎指标的进化与取代:​修正错误转换, replaced: 网路 → 网络
 
第192行: 第192行:


== 指标的进化与取代 ==
== 指标的进化与取代 ==
由于指标太活跃,因此导致它几乎能不受限制的在各种[[记憶体位址]]间活动,所以一旦有任何重复、重疊、溢位的情形发生时,电脑便直接当机,这成为指标功能上的最大缺憾。因此在新的网程式语言的开发上,新的语言如[[Java]]、[[C#]]等语种已经取消了指标的无限制使用形式。 C#允许指标的有限功能的使用,[[指标和运算指标]]在一个操作的环境中是存在潛在的[[非安全性]]的,因为他们的使用可以避开对象的一些严格訪问规则。C#中使用指标的代碼段或者方法的地址要用unsafe关鍵字进行标记,这样,这些代碼的使用者就会知道这个代碼相比其他的代碼而言是不具有安全性的。编译器需要unsafe关鍵字时将使用此代碼的程序转换成是允许被编译的。一般来说,[[不安全代碼]]的使用可能是为了非託管的API(应用程序编程介面)的更好互用,或者是为了(存在内在不安全性的)系统调用,也有可能是出于提高性能等方面的原因。而Java中不允许[[指标或者算术指标]]的使用。
由于指标太活跃,因此导致它几乎能不受限制的在各种[[记憶体位址]]间活动,所以一旦有任何重复、重疊、溢位的情形发生时,电脑便直接当机,这成为指标功能上的最大缺憾。因此在新的网程式语言的开发上,新的语言如[[Java]]、[[C#]]等语种已经取消了指标的无限制使用形式。 C#允许指标的有限功能的使用,[[指标和运算指标]]在一个操作的环境中是存在潛在的[[非安全性]]的,因为他们的使用可以避开对象的一些严格訪问规则。C#中使用指标的代碼段或者方法的地址要用unsafe关鍵字进行标记,这样,这些代碼的使用者就会知道这个代碼相比其他的代碼而言是不具有安全性的。编译器需要unsafe关鍵字时将使用此代碼的程序转换成是允许被编译的。一般来说,[[不安全代碼]]的使用可能是为了非託管的API(应用程序编程介面)的更好互用,或者是为了(存在内在不安全性的)系统调用,也有可能是出于提高性能等方面的原因。而Java中不允许[[指标或者算术指标]]的使用。


== 参考 ==
== 参考 ==