是否有可能有2个变量指向内存中的同一地址

时间:2013-10-04 11:03:36

标签: visual-foxpro

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

 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

3 个答案:

答案 0 :(得分:1)

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

Access and Assign Example

答案 1 :(得分:1)

没有。 Foxpro中没有指针或引用;正如您所注意到的,最接近它的是通过引用函数传递参数。您可能能够尝试使用Access / Assign方法将对象(如Jerry所提及)与对象混合在一起,但即便如此,传递给Assign方法的所有内容都是赋值 - 没有任何关于它是最初的另一个变量,文字值,对象的属性等等。

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

答案 2 :(得分:1)

你可以这样做:

a=4
b='a'
a=6
?&b