Ken*_*ite 13
你使用指针的次数比你在Delphi中的指针要频繁得多.编译器只是隐藏它.
var
SL: TStringList;
...
SL := TStringList.Create;
// SL is now a pointer to an instance of the TStringList class.
// You don't know it because the compiler handles dereferencing
// it, so you don't have to use SL^ . You can just use the var.
SL.Add('This is a string');
Run Code Online (Sandbox Code Playgroud)
字符串也是指向存储字符串的内存块的指针.(它实际上存储的不止于此,但......)
所以记录的实例,PChars(基本上是指向字符数组的指针),以及你每天使用的大量其他东西.有许多指针不称为指针.:)
RRU*_*RUZ 11
指针包含内存位置的地址,因为它存在于任何地方.您声明的每个变量,甚至您编写的代码都可以使用指针访问,指针是Win32编程中最基本的元素之一,您必须阅读Rudy Velthuis的这篇精彩文章Addressing pointers
才能理解指针用法.
要理解现代Delphi中可能使用的指针,需要了解指针在历史上的使用方式以及Delphi如何在幕后使用指针.
可以有指向一段代码的指针.这可以用于直观的事情(使用它需要调用的函数来参数化一些算法;示例:TObjectList.Sort
将函数指针作为参数).现代Delphi使用指针代码来实现以下内容(不再详述):
这些都是避免原始指针代码的非常强大的方法,实际上今天对原始代码指针的需求非常少.
每个人都使用链接列表学习指针.指针对于实现大多数非平凡的数据结构至关重要; 事实上,很难命名一个没有使用指针实现的有用数据结构.
Delphi为数据指针提供了大量的格栅抽象,因此我们可以在不触及指针的情况下工作.我们有对象(类实例)和大多数数据结构(string
TObjectList,动态数组)的良好实现.
我们基本上使用指针来实现Delphi为我们提供的更多炉排.我可以举例说明我使用过指针的例子,但我发现举例说明其他人使用指针的例子:
归档时间: |
|
查看次数: |
1363 次 |
最近记录: |