Указатели. Общие сведения

Ноябрь 24, 2010 / Автор AlexR / Рубрики Учебник по паскалю / Комментировать

Указатели – это ячейки памяти, в которых хранится адрес.

Каждая переменная, константа, массив (а также процедуры, функции, структуры и т.д.) хранятся в памяти, поэтому имеют какой-либо определенный адрес. При компиляции и компоновке компилятор к каждой переменной (массиву или константе), которая используется в выражении, подставляет адрес, для того, чтобы процессор смог определить в каком месте, по какому адресу располагается то или иное значение переменной.

Таким образом, компилятор выполняет несколько действий, как минимум это: поиск по названию переменной ее объявление, определение типа, для того, чтобы определить смещение и подстановка адреса. Если бы мы знали адрес переменной изначально, то легче было бы его просто изначально его и подставить, тогда компилятор не будет выполнять некоторые «лишние» действия. В результате мы выиграем очень дорогой ресурс в программировании – процессорное время.

Но это еще не все достоинства указателей. Приведу еще один пример: сортировка массива строк. Допустим, у нас есть массив, состоящий из имен студентов. Нам надо его отсортировать по алфавиту.

  1. Самым «легким» способом будет взять этот массив и просто напросто переставлять строки местами так, как делают это с числами. Только с числами все совсем по-другому. Число – это одна ячейка памяти, когда строка – это целый массив, элементами которого являются символы, входящие в данную строку. Поэтому числовой массив отсортировать гораздо легче, чем строковый. Возможно, программируя на паскале, Вы это не заметите, но например, в Си или Си++ эта разница очень заметна.
  2. Есть другой способ сортировки массива строк, как раз таки – сортировка указателей в массиве. Каждая ячейка массива имеет свой адрес, каждый начальный элемент строк имеет адрес, при этом указывает на следующие элементы строки. Поэтому намного проще будет переставить указатели на соответствующую строку в массиве, другими словами поменять адреса в массиве, нежели переставить строку.

Следует научиться использовать указатели – это очень мощное средство в программировании. Они применяются везде, в какой бы среде программирования Вы не работали.

Существуют два вида указателей:

  1. Типизированные, содержащие адрес на ячейку памяти определенного типа.
  2. Не типизированные, используются в тех случаях, когда программисту неизвестно какой тип будет переменной (константы, массива …).

Вернуться к оглавлению

Комментарии закрыты.