Поделиться через


Одномерные массивы

Выражение в квадратных скобках постфиксная за выражением ([]) subscripted представление элемента объекта массива.Выражение представляет значение по адресу, индекс Выражение выше позиции постфиксное выражение выражано как

postfix-expression [ expression ]

Обычно значение, представленное by постфиксное выражение значение указателя, например идентификатор массива. Выражение объединенное значение.Однако все, синтаксически, что одно из выражений типа указателя и другого объединенного типа.Таким образом объединенное значение может иметь постфиксное выражение позиция и значение указателя могли бы быть в брекетах в Выражениеили "индекс" bin.Например, допустим следующий код:

// one_dimensional_arrays.c
int sum, *ptr, a[10];
int main() {
   ptr = a;
   sum = 4[ptr];
}

Выражения индекс обычно используются для обращения к элементам массива, но можно применить к любому указателю индекс.Все действия порядок значений Выражение быть заключен в брекеты ([]).

Выражение вычисляется путем добавления объединенное значение индекса значения указателя, после чего при применении косвенного обращения (оператор*****) к результату.(См. Косвенность оператора взятия адреса и обсуждение оператора косвенного обращения.) В результате для одномерного массива, следующие 4 выражения эквивалентны, при условии, что a указатель и b целое число:

a[b]
*(a + b)
*(b + a)
b[a]

Согласно правилам преобразования для оператора сложения (уступанного аддитивные операторы), объединенное значение преобразуется к смещению адреса путем умножения его длину типа приготовленного указатель.

Например, предположим идентификатор line ссылается на массив int значения.Следующая процедура используется для вычисления выражения индекса line[ i ].

  1. Целое число i умножает число байтов, указанных как длина int элемент.Преобразованное значение i представляет i int позиции.

  2. Это преобразованное значение добавляется к исходному значению указателя (lineсоздать адрес, который возмещен) i int позиции из line.

  3. Косвенный оператор применяется к новому адресу.Результат значение элемента массива в этой позиции (можно сделать более наглядным. line [ i ]).

Выражение индекса line[0] представляет значение первого элемента линии, поскольку смещение от адреса, представленного by line 0.Аналогичным образом, выражение line[5] относится к элементу смещение 5 позиций из линий или шестого элемент массива.

См. также

Ссылки

Оператор индекса: []