2

Visual Foxpro で、メモリ内の同じアドレスを指す 2 つの変数を持つことは可能ですか。変数の 1 つの値が変更されると、もう 1 つの値も変更されるようにします。関数に引数を渡すときに、値または参照で渡すことができることは理解していますが、これがストレート コードで可能かどうかを知りたいです。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
4

3 に答える 3

1

いいえ。Foxpro にはポインタや参照はありません。お気づきのように、それに最も近いのは、関数への参照によってパラメーターを渡すことです。Access/Assign メソッドを使用して (Jerry が言及しているように) オブジェクトと一緒に何かをこじ開けようとすることができるかもしれませんが、その場合でも、Assign メソッドに渡されるのは代入される値だけです。リテラル値、オブジェクトのプロパティなど。

配列またはテーブルを使用してシミュレートできます。変数には、参照として配列インデックスまたはレコード番号 (または他のインデックス) のみが含まれ、配列またはテーブルから実際の値を取得する必要があります。

于 2013-10-04T14:35:01.210 に答える
1

次のようなことができます。

a=4
b='a'
a=6
?&b
于 2013-10-07T14:13:26.550 に答える