Нулевой индекс вполне допустим, если вы думаете, что индекс фактически является смещением от базового адреса массива. На самом деле это норма, хотя она варьируется от диалекта к диалекту. Со старым языком Jovial [0]
фактически содержался максимальный размер массива. так началось с [1]
.
В некоторых базовых реализациях вы можете произвольно выбрать один 0
или 1
первый индекс. И по крайней мере один Basic позволяет назначить массивы индекса Фрон [n]
к [m]
. где n
и m
может иметь любое целочисленное значение, даже отрицательное, если n
оно меньше или равно m
. Значение n
их становится вычитаемым из [index]
введенного, как index-n = 0
будто индекс соответствует n
.
Но вы можете сделать то же самое и многое другое в своем собственном коде. Вы можете даже изменить порядок массива следующим образом:
dim array(0, abs(m-n));
step=sign(m-n);
if n > m then
base=m
else
base=n;
fi
Этот пример кода на самом деле только частично из одного языка. Я просто хотел, чтобы это было более читабельным. Переменная step используется для управления видимым направлением движения в положительном или отрицательном направлении и используется для расчета эффективного индекса при входе или выходе из массива, который фактически всегда является положительным [0]
.
${array[@]}
в двойные кавычки. В противном случае будет выполнено разделение слов, и вы получите нежелательные результаты, например, при вводеarray=("item 1" "item 2" "item 3")
.