тип & имя;
где тип — это тип величины, на которую указывает ссылка, & — оператор ссылки, означающий, что следующее за ним имя является именем переменной ссылочного типа, например:
1nt ко!:
1nt& pal = kol; // ссылка pal - альтернативное имя для ко!
const char& CR = ' \ n ' : // ссылка на константу
Запомните следующие правила.
Переменная-ссылка должна явно инициализироваться при ее описании, кро ме случаев, когда она является параметром функции (см. с. 77), описана как extern или ссылается на поле данных класса (см. с. 178).
После инициализации ссылке не может быть присвоена другая переменная.
Тип ссылки должен совпадать с типом величины, на которую она ссылается.
Не разрешается определять указатели на ссылки, создавать массивы ссылок и ссылки на ссылки.
Ссылки применяются чаще всего в качестве параметров функций и типов воз вращаемых функциями значений. Ссылки позволяют использовать в функциях переменные, передаваемые по адресу, без операции разадресации, что улучшает читаемость программы (подробнее об этом рассказывается в разделе «Параметры функции», с. 77).
Ссылка, в отличие от указателя, не занимает дополнительного пространства в па мяти и является просто другим именем величины. Операция над ссылкой приво дит к изменению величины, на которую она ссылается.
Массивы
При использовании простых переменных каждой области памяти для хранения данных соответствует свое имя. Если с группой величин одинакового типа требу ется выполнять однообразные действия, им дают одно имя, а различают по по рядковому номеру. Это позволяет компактно записывать множество операций с помощью циклов. Конечная именованная последовательность однотипных вели чин называется массивом. Описание массива в программе отличается от описа ния простой переменной наличием после имени квадратных скобок, в которых задается количество элементов массива (размерность):
f!oat а [10]; // описание массива из 10 вещественных чисел
При описании массивов квадратные скобки являются элементом синтаксиса, а не указанием на необязательность конструкции.
Элементы массива нумеруются с нуля. При описании массива используются те же модификаторы (класс памяти, const и инициализатор), что и для простых пе ременных. Инициализирующие значения для массивов записываются в фигур ных скобках. Значения элементам присваиваются по порядку. Если элементов в массиве больше, чем инициализаторов, элементы, для которых значения не ука заны, обнуляются:
int b[5] = {3. 2. 1}; / / b[0]=3. b[l]=2. b[2]=l. b[3]=0. b[4]=0
Размерность массива вместе с типом его элементов определяет объем памяти, не обходимый для размещения массива, которое выполняется на этапе компиляции, поэтому размерность может быть задана только целой положительной констан той или константным выражением. Если при описании массива не указана размерность, должен присутствовать инициализатор, в этом случае компилятор вы делит память по количеству инициализирующих значений. В дальнейшем мы увидим, что размерность может быть опущена также в списке формальных пара метров (см. раздел «Параметры функции», с. 77).
Для доступа к элементу массива после его имени указывается номер элемента (индекс) в квадратных скобках. В следующем примере подсчитывается сумма элементов массива.
#include <1estream.h>
int ma1n(){
const int n = 10;
int i . sum;
int marksCn] = {3. 4. 5. 4. 4};
for (1 = 0. sum = 0; 1
}
Размерность массивов предпочтительнее задавать с помощью именованных констант, как это сделано в примере, поскольку при таком подходе для ее измене ния достаточно скорректировать значение константы всего лишь в одном месте программы. Обратите внимание, что последний элемент массива имеет номер, на единицу меньший заданной при его описании размерности.
ВНИМАНИЕ
При обращении к элементам массива автоматический контроль выхода индекса за грани цу массива не производится, что может привести к ошибкам.
Пример. Сортировка целочисленного массива методом выбора. Алгоритм состо ит в том, что выбирается наименьший элемент массива и меняется местами с первым элементом, затем рассматриваются элементы, начиная со второго, и наи меньший из них меняется местами со вторым элементом, и так далее п-1 раз (при последнем проходе цикла при необходимости меняются местами предпоследний и последний элементы массива).
Достарыңызбен бөлісу: |