Указатели и массивы в Си

Указатели и массивы в C

Имя массива является одновременно и указателем на первый элемент массива, т.е. элемент, имеющий индекс ноль. Такой указатель есть константа. Поэтому создаём указатель-переменную и присваиваем ему адрес из указателя-константы. С этим новым указателем можно производить какие-то манипуляции. Пример:

В этом примере объявлен массив nArray. Имя массива nArray является указателем на первый элемент массива, на nArray[0]. Указатель nArray является константой, а в примере надо изменять адрес, на который указывает указатель. Поэтому создаём свой указатель-переменную nPointer и присваиваем ему значение костантного указателя nArray:

int *nPointer = nArray;

Сейчас nPointer хранит адрес первого элемента массива.

В цикле, изменяя адрес в указателе nPointer на единицу, выводим все элементы массива.
Далее, после цикла, выводим на экран третий элемент массива:

printf("\n\nnArray[2]\t=\t%d", *(nPointer - 5 + 2));

nPointer — переменная, в цикле значение этой переменной менялось, ведь мы проходили по адресам пяти элементов массива. Поэтому теперь, чтоб получить третий массива элемент надо сначала отойти на пять адресов назад, т.е. на адрес элемента nArray[0], а после продвинуться на два адреса вперёд: *(nPointer - 5 + 2)).

Получаем: C array pointer


Быстрый поиск: Java и базы данных