指针就是大家知道的"特征指针"。详细信息请参见术语表中的“特征指针”。
指针提供了一种使用呼叫子命令通过变量参考特征或传递对象的途径。指针类似于通过字符串名称的间接物。然而,使用指针时的益处就在于子程序。指针与字符串不同,在作为子程序的参数进行传入时,允许间接修改子程序指向的对象。复杂的表达式中不能使用指标。如在复杂的表达式中使用了指标,则指标得到的值为零。
参见下例。
指针使用示例:
ASSIGN/V1={CIR1}
V1 现在是指向 CIR1 的指针。
ASSIGN/DIST=DOUBLE(V1.XYZ)
Dist = CIR1 到原点的距离。
你也可以将表达式放在大括号之间得到一个特征指针。下面的例子都可以正确的得到特征CIR1的指针:
ASSIGN/FEATCOUNT=1
ASSIGN/V1={"CIR"+FEATCOUNT}
将表达式“CIR1”赋给 V1。
ASSIGN/V2="CIR1"
ASSIGN/V3={V2}
将变量 V2 的表达式 "CIR1" 分配给变量 V3
C1=COMMENT/INPUT,请键入特征名称。
ASSIGN/V4={C1.INPUT}
取 C1.INPUT 的特征名称并将其放入变量 V4 中。
子例程示例:
在调用例程中:
CS1=CALLSUB/SUB.PRG,CHANGEX,{CIR1}
在例程中:
GEN1=GENERIC/FEATURE
SUBROUTINE/CHANGEX,ARG1={GEN1}
(当CIR1传入时,将取代 GEN1)
ARG1.X=5
(将CIR1的X测定值设置为5)
终止/子程序
复合表达式示例:
ASSIGN/V1={CIR1}+2
{CIR1}的值为0,所以整个表达式的结果为2。