Оператор [] (Индекс указателя)
 
Возвращает ссылку на смещение памяти от адреса

Синтаксис
Использование

result = lhs [ rhs ]

Параметры

lhs
Базовый адрес.
rhs
Знаковое смещение от lhs.
T
Любой тип данных.

Описание

Этот оператор возвращает ссылку на значение , которое находится на некотором смещении от базового адреса в памяти. Это по существу сокращенный вариант "*(lhs + rhs)";оба делают то же самое. Арифметической указатель любого типа Pointer может индексироваться , за исключением Any Pointer. Кроме того, как с арифметикой указателя,  все зависит от пользователя чтобы сделать конечно значимым доступ к данным.

При индексировании ' 2-мерного ' указателя (т.е. T Ptr Ptr), Первый (крайний слева) индекс применяется перед вторым: например, Pt[I1][I2] = *(Pt[I1] + I2) = *(*(Pt + I1) + I2)
В целом, при использовании 'n мерного ' указателя: Pt[I1][I2].....[In], порядок индексов (слева направо) соответствует порядку разыменования.

Пример

'' инициализируем массив с 5 элементами
Dim array(4) As Integer = { 0, 1, 2, 3, 4 }

'' указатель на первый элемент
Dim p As Integer Ptr = @array(0)

'' используем указатель индексации к элементам массива для вывода
For index As Integer = 0 To 4
    Print p[index];
Next
Print


Вывод

 0 1 2 3 4

Отличия от QB

  • Новое в FreeBASIC

См. также