[导入][MSIL] 33. Pointer

可以说指针(Pointer)是所有编程语言的灵魂和核心,无论多高级的语言,归根结底还是使用指针和内存打交道。所不同的是现代的语言通过种种封装手段让我们可以在不了解指针的情况下就能完成相关编码,这种封装更加安全和便捷,比如 C# 里面的对象引用(object reference)。

在 MSIL 的世界里,数字分为两种,而这其中就有存储内存位置的数字 —— 指针。当我们查看或者操作一个指针时,他的外在表现就是一个无符号整数。指针本身也是有类型的,CLR 确保其操作符合类型安全要求,它只能指向与它类型相同的数据。我们可以使用符号 "&" 定义托管指针(managed pointer),用 "*" 定义非托管指针(unmanaged pointer)。两者的区别是:托管指针受运行时垃圾回收子系统(garbage collection subsytem)管理,在垃圾回收后能得到修正,而非托管指针通常只能用于 "unmovable" 区域。

文章来源:http://www.rainsts.net/article.asp?id=611
posted @ 2007-10-17 15:35  橡树木棉狗  阅读(102)  评论(0编辑  收藏  举报