Главная

Популярная публикация

Научная публикация

Случайная публикация

Обратная связь

ТОР 5 статей:

Методические подходы к анализу финансового состояния предприятия

Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века

Ценовые и неценовые факторы

Характеристика шлифовальных кругов и ее маркировка

Служебные части речи. Предлог. Союз. Частицы

КАТЕГОРИИ:






Для доступа к элементам массива тоже существуют два способа




Первый способ доступа к элементам массива связан с использованием обычных индексных выражений вида arr[i].

Второй способ связан с использованием адресного выражения (или выражения с указателем на массив)

*(ptr+i)

В общем случае индексное выражение в языке Си имеет вид:

выражение_1[выражение_2]

где выражение_1 – это любой указатель, например, идентификатор массив, а выражение_2 – это целая величина. Однако требуется только, чтобы одно из выражений было указателем, а второе целой величиной. Поэтому выражение_1 может быть целой величиной, а выражение_2 – указателем.

Рассмотрим, как вычисляется индексное выражение arr[5]. Идентификатор arr является указателем начала массива. В соответствии с правилами выполнения операции сложения указателя с целой величиной целая величина преобразуется к адресному представлению путём умножения её на размер типа, адресуемого указателем. Целая константа 5 умножается на размер типа int преобразованное значение числа 5 представляет 5 позиций типа int. Это преобразованное значение числа 5 складывается со значением указателя arr, то даёт адрес, относящийся к шестой (т.к. нумерация идёт с нулевого индекса) позиции типа int после arr. К полученному результату применяется операция “разадресация”. Результатом является значение шестого элемента массива. В терминах языка Си это выглядит так:

arr[5]=*(arr+5)=*(arr+5*syzeof(int))

Следовательно следующие выражения ссылаются на шестой элемент массива arr.

arr[5]

5[arr]

*(arr+5)

*(5+arr)

Как следует из определения индексного выражения, любой указатель может быть задан с индексом. Указатель на массив также может быть проиндексирован. выражения

ptr[5]

5[pt]

ссылаются на тот же шестой элемент массива arr. Если расписать индексное выражение ptr[5], то получится адресное выражение

*(ptr+5)






Не нашли, что искали? Воспользуйтесь поиском:

vikidalka.ru - 2015-2024 год. Все права принадлежат их авторам! Нарушение авторских прав | Нарушение персональных данных