насколько я понял, есть разные мнения на тему того, что такое "настоящий" массив:
1) предусмотрен ли в языке специальный синтаксис для многомерных массивов (есть ли многомерные массивы на уровне языка). C, например, не проходит по этому критерию, но проходит по следующему
2) как такие массивы реализованы: либо есть один непрерывный блок, хранящий последовательно все значения, либо есть много одномерных массивов, связанных друг с другом. Непрерывный блок может быть лучше с точки зрения производительности, но такие массивы менее гибкие, мало где нужны и мало где остались
по первому критерию, проходит
BASIC
но в любом случае, тут не чем хвастаться
а
вот как работали с многомерными массивами в perl, пока там не появились ссылки
Код:
|
@john = (47, "brown", 186); @mary = (23, "hazel", 128); @bill = (35, "blue", 157);
@vitals = ('john', 'mary', 'bill'); |
Код:
|
$vitals = $vitals[0]; eval "\$${vitals}[1] = 'red'"; |
или
Код:
|
local(*array) = $vitals[0]; # Alias *array to *john
$array[1] = 'red'; # Actually sets $john[1]. |
UPD, по поводу первого критерия... C не знает, что такое многомерный массив. Когда ты пишешь int a[5][7], для него это int (a[5])[7]. Т.е. он рассматривает это как массив c элементами типа int[7], просто у C гибкая система типов. Но когда ты в BASIC пишешь DIM A(5,7)... он не может не знать, что это многомерный массив