684_____________________________________________Глава 12 

Хороший стиль программирования —————————————————————

Присваивайте указателям при их объявлении значение NULL или адрес. Неинициализир^И
ванный указатель может при работе с ним приводить к самым неожиданным результатам.^И

Для присваивания указателю адреса некоторой переменной используется оп^И
рация адресации &, которая возвращает адрес своего операнда. Например, CCJ^H
имеются объявления                                                    ^И

то оператор                                                               ^Н

присваивает адрес переменной у указателю yPtr.                           ^И

Для того, чтобы получить значение, на которое указывает указатель, испол^Н
зуется операция *, обычно называемая операцией косвенной адресации или опе^т^Н
цией разыменования. Она возвращает значение объекта, на который указывает ^И
операнд (т.е. указатель). Например, если продолжить приведенный выше приме^И
то оператор                                                            ^И

присвоит переменной х значение 5, т.е. значение переменной у, на которую указх^И
вает yPtr.                                                               ^Н

Предупреждение

Операцию разыменования нельзя применять к указателю на void, поскольку для него нег
вестно, какой размер памяти надо разыменовывать.

Массивы и указатели в Си++ тесно связаны и могут быть использованы поч^Н
эквивалентно. Имя массива можно понимать как константный указатель на пе^Н
вый элемент массива. Его отличие от обычного указателя только в том, что его н^Н
льзя модифицировать.                                                 ^И

Указатели можно использовать для выполнения любой операции, включав
индексирование массива. Пусть вы сделали следующее объявление:          ^Н

int Ь[5] = (.1,2,3,4,5), *Pt;                                          f

Тем самым вы объявили массив целых чисел Ь[5] и указатель на целое Pt. П^Н
скольку имя массива является указателем на первый элемент массива, вы може^И
задать указателю Pt адрес первого элемента массива b с помощью оператора ^1

Это эквивалентно присваиванию адреса первого элемента массива следующ^^И
образом                                                               ^Н

Теперь можно сослаться на элемент массива Ь[3] с помощью выражения *(Pt + З^И

Указатели можно индексировать точно так же, как и массивы. Например, в^И
ражение Pt[3] ссылается на элемент массива Ь[3].                         ^1

Таким образом манипуляции, определенные для массивов, определены и А^Н
указателей на массивы. Но с точки зрения понятности программы лучше это б^Н
крайней необходимости не использовать.                                 ^Н

Указатели могут применяться как операнды в арифметических выражениями
выражениях присваивания и выражениях сравнения. Однако, не все операци^И
обычно используемые в этих выражениях, разрешены применительно к переме^И
ным указателям.                                                     ^Н