【问题标题】:Is it possible to have 2 variables point to the same address in memory是否可以让 2 个变量指向内存中的相同地址
【发布时间】:2013-10-04 11:03:36
【问题描述】:

在 Visual Foxpro 中是否有可能有 2 个变量指向内存中的相同地址。这样如果其中一个变量的值发生变化,那么另一个变量也会发生变化。我知道在将参数传递给函数时,它们可以通过值或引用传递,但我想知道这是否可以在直接代码中实现。我认为在 C 等其他语言中,这称为指针,但我不相信 VFP 有指针。因此,如果编写以下代码,它将输出数字 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

【问题讨论】:

    标签: visual-foxpro


    【解决方案1】:

    没有。 Foxpro 中没有指针或引用;正如您所注意到的,最接近它的是通过引用函数来传递参数。您可能可以尝试使用 Access/Assign 方法将某些东西与对象拼凑在一起(正如 Jerry 提到的),但即便如此,传递给 Assign 方法的只是被分配的值 - 没有任何关于是否最初是另一个变量、文字值、对象的属性等。

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

    【讨论】:

    • 非常感谢。我不是特别想这样做(现在),但我只是想确保它是不可能的。
    【解决方案2】:

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

    Access and Assign Example

    【讨论】:

      【解决方案3】:

      你可以这样做:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2022-11-23
        • 1970-01-01
        • 2012-08-22
        • 1970-01-01
        • 2018-07-04
        • 2019-04-07
        • 2023-04-10
        • 2023-03-08
        相关资源
        最近更新 更多