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程序转化时正确地
选用互指方法 。
