2013-10-04 70 views
2

在Visual Foxpro中可能有2个变量指向内存中的相同地址。这样,如果其中一个变量的值发生变化,另一个变化。我明白,当将参数传递给函数时,它们可以通过值或引用传递,但我想知道这是否可以用直接代码。我认为在其他语言如C这称为一个指针,但我不认为VFP有指针。因此,如果有人写下面的代码,它会输出数字4.是否有可能有2个变量指向内存中的相同地址

a=4 
b=a 
a=6 
? b && answer 4 

但是,可以写一个代码,如下面的答案可能是6?

a=4 
b=*a && note the inclusion of the asterisk (pointer?) here which won't compile in VFP 
a=6 
? b 

回答

1

号有FoxPro中没有指针或引用;正如你注意到的,最接近它的是通过引用函数来传递参数。您可能会尝试使用Access/Assign方法将对象聚合在一起(如Jerry提及的),但即使如此,所有传递给Assign方法的值都是要赋值的值 - 与它本来是否是另一个值无关变量,文字值,对象属性等。

您可以使用数组或表格来模拟它。变量只包含数组索引或记录号(或其他索引)作为参考,您必须从数组或表中获取实际值。

+0

这是伟大的感谢。我不是特别想做(现在),但我只是想确保它不可能。 – Caltor

1

看看Visual Foxpro访问和分配方法。这些方法可用于在查询属性或尝试更改属性值时执行代码。下面是示出了示例的链接:

Access and Assign Example

1

你可以做这样的事情:

a=4 
b='a' 
a=6 
?&b 
相关问题