Указатели – это переменные, которые содержат адрес ячейки.
Для указателей определены две специальные операции: & - получение адреса переменной и * - получение значения по адресу.
Int a = 5;
cout << a; -будет напечатано значение а, т.е. 5
cout << &a-будет напечатан адрес переменной а.
Расположение значений указателя и переменной, на которую указывает этот указатель, иллюстрируется на рисунке 2
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 – указатель.