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

Для указателей определены две  специальные операции: & - получение адреса переменной и * - получение значения по адресу.

Int a = 5;

cout << a; -будет напечатано значение а, т.е. 5

cout << &a-будет напечатан адрес переменной а.

Расположение значений указателя и переменной, на которую указывает этот указатель, иллюстрируется на рисунке 2

 

ris2

int *pa = 0 и pa = &a равнозначны записи int *pa = &a;

Указатели позволяют получать доступ к значениям данных без использования их имен и используются при работе с динамической памятью. В дальнейшем в тексте указатели будут содержать букву р в имени.

Запись  *римя  допустима всюду, где используются имена переменных (в выражениях, которые задают элементы массивов или компоненты структур).

Пример:  Допустим, в программе определены переменные x, y, px, py;

тогда можно записать

x = y; *px = y; x = *py; *px = *py;

Для указателей справедливы следующие соотношения

*(&v) º v, где v – имя переменной.

&(*p) º p, где p – указатель.