您的位置:首页 > 编程语言 > Delphi

Delphi中的指针与C语言中指针使用时的简单对比

2014-09-24 00:00 225 查看
工作两年,其间由于有老的项目需要维护,总是在断断续续的使用Delphi进行一些开发,在老的程序中进行一些修修补补,遇到Delphi的指针总是得过且过,实在不是合格程序员的做派,所也借着这时间,做一个笔记,也给自己提个醒。

1. 指针的定义

定义一个特定类型的指针

C语言:

int *num;
char *ch;

Delphi:

var
num : ^Integer;
ch : ^char;

或者使用Delphi定义好的PInteger,PChar等类型。

2. 无类型指针

指针类型是指向某基类型变量的一个值,在Delphi中Pointer是一个无基类型的指针,不能直接引用类型Pointer的变量,即在这样的变量后写上符号^是错误的。但是,可以通过类型转换成某特定类型指针后使用。Pointer类型的值与所有其他指针类型的值是相容的。

C语言:

void *p;

Delphi:

var
p : Pointer;

3. 取地址

指针变量存储着一个机器内存地址,要给一个指针赋值,就要使用取地址操作,去除一个变量(包括指针自己)在内存中的地址。

C语言:

pt = &Factory;

Delphi:

pt := @Factory;

4. 取目标

给一个指针赋值后,使用时就要将指针指向的对象取出来使用,这时就需要使用取目标操作了。

C语言:

char *pa;
char pb='s';
pa = &pb;
pb = *pa;

Delphi:

var
i ,j: Integer;
p : ^Integer;

i := 123;
p := @i;
j := p^+1;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: