или
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