ADA与C在指针上的区别

ADA与C在指针上的区别

C/C++中,对象与其对应的指针就如对象与其镜象。

 

其中有2个需要注意的操作符。

 

&Object ,意味着什么呢?的确是取了OBJECT对象自身的地址,还有呢?就是OBJECT对象

 

指向其指针的意思,用它可以直接替代POBJECT。

 

*POBJECT ,就是取指针所指向的对象,可以用*POBJECT替代OBJECT 。

 

交替的 *&  或者 &*  将等于OBJECT以及POBJECT本身。

 

ADA里,要复杂些。

 

ADA是强类型的,当然了,实际上强化了各种类型的对象的概念。

 

ADA里也有2种相反的操作。

 

OBJECT'access  则指向POBJECT(ADA里,可以写成OBJECT_ACCESS),

 

OBJECT'ACCESS 与 POBJECT(或OBJECT_ACCESS)等同。

 

OBJECT'ADDRESS  则取OBJECT的地址 ,但这却不意味着指向其指针,而是单纯的取地址,

 

一些操作,譬如读取文件,写入文件都需要获取地址。

 

ACCESS与ADDRESS是两种不同的类型,意味着OBJECT_ACCESS与

 

OBJECT_ADDRESS是两种不同的东西。

 

OBJECT_ACCESS.ALL 则是访问型指向对象,就是等同于OBJECT 。

 

因此,ADA里,Object'access  与  PObject.all 是相互指向的操作,

 

Object'access.all=Object   ;  PObject.all'access=PObject  ;

 

C与ADA的指针的区别将有助于在将C程序向ADA程序转化时正确地

 

选用互指方法 。