指针--指针类型

fondax 2011-05-25 08:17:25

Type
pointer=^数据基类型;
Var
p:pointer;
///////////////////////////
Var
p: ^数据基类型;


以上代码有没有区别?
如果有,什么时候情况下使用这两种?
...全文
148 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
rainychan2009 2011-06-19
  • 打赏
  • 举报
回复
实质没有区别,但是前一种的使用更好。定义一种类型,然后所有的变量都是这个类型的实例。如果存在多个实例,那么他们的类型是一致的,但是如果用后一种,人为理解类型是一致的,但是Delphi不买账:它们是不同的类型的实例。因此推荐用第一种。
五哥 2011-06-15
  • 打赏
  • 举报
回复
type
T=^R;
R=Record
a:integer;
b:Byte;
c:Char;
s:String;
end;
var
P:T;
kye_jufei 2011-06-08
  • 打赏
  • 举报
回复
type是指針類型。。。
cntigercat 2011-06-01
  • 打赏
  • 举报
回复
学习了。。。
火龙岛主 2011-06-01
  • 打赏
  • 举报
回复
[Quote=引用楼主 fondax 的回复:]
Delphi(Pascal) code

Type
pointer=^数据基类型;
Var
p:pointer;
///////////////////////////
Var
p: ^数据基类型;



以上代码有没有区别?
如果有,什么时候情况下使用这两种?
[/Quote]

有区别,一种是无定义类型指针,也就是说通用类型指针,这种指针可以是任意类型。
这种方式使用的时候一般情况看下,需要使用类型转换。
另外一种是定义类型指针,也就是说使用“p: ^数据基类型;”定义的时候,指针类型也就确定了。
通常用于record的指针类型声明。
当然系统中也定义了类似PString这样的类型提供给用户使用。
yqdragon 2011-05-30
  • 打赏
  • 举报
回复
如果数据基类型很复杂,使用第一种只要定义好,在所有单元引用非常方便啊
使用第二种,每次都要重定义,很麻烦的偶
bdmh 2011-05-30
  • 打赏
  • 举报
回复
Type下是声明一个指针类型,这样你才可以使用像p:pointer;这样的声明,而且只要引用了所在单元,就可以使用pointer

第二种,是局部变量,只在本方法中使用,其他地方无法使用
haitao 2011-05-28
  • 打赏
  • 举报
回复
哦,上面写错了
声明参数,只能使用前者
haitao 2011-05-28
  • 打赏
  • 举报
回复
声明变量,都可以
声明变量,只能使用前者
helyna 2011-05-28
  • 打赏
  • 举报
回复
第一种声明为一种类型
第二种声明为变量
  • 打赏
  • 举报
回复
第一种好点
qianchuan2010 2011-05-25
  • 打赏
  • 举报
回复
type
T=^R;
R=Record
a:integer;
b:Byte;
c:Char;
s:String;
end;
var
P:T;
qianchuan2010 2011-05-25
  • 打赏
  • 举报
回复
没多大区别,第一种好点吧
type
R=Record
a:integer;
b:Byte;
c:Char;
s:String;
end;
var
P:^R;
cngst 2011-05-25
  • 打赏
  • 举报
回复
没实质区别,推荐使用前一种,方便函数参数声明等

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧