Одномерные массивы
Выражение в квадратных скобках постфиксная за выражением ([]) 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 ].
Целое число i умножает число байтов, указанных как длина int элемент.Преобразованное значение i представляет i int позиции.
Это преобразованное значение добавляется к исходному значению указателя (lineсоздать адрес, который возмещен) i int позиции из line.
Косвенный оператор применяется к новому адресу.Результат значение элемента массива в этой позиции (можно сделать более наглядным. line [ i ]).
Выражение индекса line[0] представляет значение первого элемента линии, поскольку смещение от адреса, представленного by line 0.Аналогичным образом, выражение line[5] относится к элементу смещение 5 позиций из линий или шестого элемент массива.