一般来说,变量是线性分配的~
a:array [1..10] of integer;
i,k,j:integer;
如果把内存看成一个个格子,那个a数组占了1~10号格子
i占了11号,k占了12号,j占了13号
你多了一个k,等于是一个缓冲,在那些不检查数组范围的语言内,如果你不使用i和k函数
那么这个定义和a:array[1..12]是没有什么区别的~
但是逗号是一种不要求顺序的运算,就是说编译器在运行程序的时候可以从逗号左边算到逗号右边,也可以先算右边……
所以……具体你的问题我无法调试,也没有办法作定论。
你可以试着监视i,j,k三个变量,使用单步运行(F7),看看读到a[11],a[12]时i,j,k的变化情况~