function
が定義されていないため、コードサンプルには情報がありません。これは、描画しようとする結論を引き出すことができないことを意味します。
もちろん、function
はパスカルの予約語なので、そのコードは決してコンパイルできません。変数がf
となったと仮定します。
は、以下の定義を考えてみましょう:
type
sample1 = array [1..80] of integer;
psample = ^sample1;
var
f : array [1..70] of psample;
ここ
、sample1
とpsample
がタイプです。 sample1
は、80個の整数の配列を記述する型です。 psample
はsample1
へのポインタです。
次に、f
という名前の変数が定義されています。それは70 psample
の配列です。
f[1]^[1]
と書くときに何が起こるかを検討する前に、f
の要素にいくつかの値を割り当てる必要があります。
は、我々はこのようにそれをしなかったと仮定します。
var
sample: sample1;
...
for i := 1 to 70 do
f[i] := @sample;
今ではf[i]^[k]
は、すべての有効なi
ためf[j]^[k]
とj
と同じ整数を指しことは事実だろう。したがって、f[1]^[1] := 42
と書くと、その値はf[2]^[1]
、f[3]^[1]
などに割り当てられます。一方
あなたはこのようにそれを行うことができます:
var
samples: array [1..70] of sample1;
...
for i := 1 to 70 do
f[i] := @samples[i];
今、各f[i]
ポインタポイントをメモリ内の異なるアレイへ。この場合、f[1]^[1] := 42
を割り当てても、f[2]^[1]
の値やその他の値は変更されません。
Davidに感謝します。とても役に立ちます。 –