for i = 1 to 5
dim x[i]
next
コンパイルフェーズでは x という識別子だけ登録する。xの宣言は一箇所だけなので、エラーにならない。
x が配列になるのは実行フェーズで dim 文が実行されたとき。
dim x[1] -> dim x[2] -> ... -> dim x[5]
という文が実行され、xはそれぞれその長さの配列になる。(メモリリークしてそうだな。)
プチコン・・・恐ろしい子・・・
そういえば普通に
def f
for i = 1 to 5
var j
for j = i to 6
var k = i*6+j
next
next
end
とか書いてるよな~
それの配列版と思えばいいのか・・・
でも j は最初だけ 0 に初期化されるが、配列は毎回初期化されるみたい。
一見 j k は for 内に局所化してるように見えるけど、実は end まで生きてだったりするのよね。VB も似たような仕様だったかな。