или

int *jody •= new int[10]; // динамическое размещение (в куче) Foo(jody, 10);

Для разминки напишем цикл for, инициализирующий подряд элементы массива. Рассмотрим

for( int j=0; j<10; j++) buffy[j] = 0;

ИЛИ

for; int k=0; k<10; k++) * (jody + k) = 0;

Очевидно, оба фрагмента работоспособны: первый пример использует операцию массива ([]), второй выполняет разыменование каждого элемента при помощи арифметической операции сложения. С точки зрения нотации предпочтительнее использовать операцию массива, хотя в программах можно встретить оба варианта.

Вспоминая предыдущий раздел, еще раз подчеркнем, что каждый элемент массива немедленно должен быть проинициализирован. Если значения элементов неизвестны, присваивайте им в качестве начальных фиктивные значения типа 0.

Операция получения адреса

Между указателем и операцией получения адреса (&) существует непосредственная взаимосвязь: значения указателей — это адреса. Адрес есть у каждого объекта. Это, в частности, подразумевает возможность создания псевдонимов (aliases) для существующих объектов. Операция получения адреса незаменима во многих аспектах C++. Примеры этого вы не раз найдете в этой главе и далее в книге.

Для демонстрации взаимосвязи между объектами — читай, переменными, если так понятнее — и их адресами определим статическую целочисленную переменную:

int nut = 5;

Если написать

cout « nut « endl; // печатает 5

то на консоль будет выведено число 5. А.результатом

cout « &nut « endl; // печатает адрес nut