Основы программирования

         

Указатели


Указатели - это переменные, которые хранят адреса объектов. Указатели - фамильная принадлежность языка Си. В неявном виде указатели присутствовали и в других языках программирования, но в Си они используются гораздо чаще, а работа с указателями организована максимально просто.

При описании указателя надо задать тип объектов, адреса которых будут содержаться в нем. Перед именем указателя при описании ставится звездочка, чтобы отличить его от обычной переменной. Примеры описаний указателей:

int *a, *b, c, d; char *e; void *f;

В первой строке описаны указатели a и b на тип int и простые переменныe c и d типа int (c и d - не указатели!).

С указателями возможны следующие два действия:

  1. присвоить указателю адрес некоторой переменной. Для этого используется операция взятия адреса, которая обозначается амперсендом &. Например, строка

    a = &c;

    указателю a присваивает значение адреса переменной c;

  2. получить объект, адрес которого содержится в указателе; для этого используется операция звездочка '*', которая записывается перед указателем. (Заметим, что звездочкой обозначается также операция умножения.) Например, строка

    d = *a;

    присваивает переменной d значение целочисленной переменной, адрес которой содержится в a. Так как ранее указателю a был присвоен адрес переменной c, то в результате переменной d присваивается значение c, т.е. данная строка эквивалентна следующей:

    d = c;

Ниже будут рассмотрены также арифметические операции с указателями, которые в языке Си чрезвычайно важны.



Содержание раздела