Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Конспект лекций -=Вычислительная техника и прог...docx
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
1.84 Mб
Скачать

3.4.5. Ссылки

Ссылка — представляет собой синоним имени, указанного при инициализации ссылки.

Ссылку можно рассматривать как указатель, который всегда разыменовывается (реадресация).

Объявление:

тип *имя [инициатор] ;

Пример:

int kol ;

int &pal= kol ; // ссылка pal — альтернатива имени kol

const char &cR = '\n' ; // ссылка на константу

Замечания (!):

1. Переменная ссылка должна явно инициализироваться при её объявлении, кроме случаев, когда она:

— является параметром функции;

— описана как extern;

— ссылается на поле данных класса.

2. После инициализации ссылке не может быть присвоена другая переменная.

3. Тип ссылки должен совпадать с типом величины, на которую она ссылается.

4. Не разрешается определять указатели на ссылки, создавать массивы ссылок и ссылки на ссылки.

Применяются ссылки чаще всего в качестве параметров функций и типов, возвращаемых функциями значений. Ссылки позволяют использовать в функциях переменные, передаваемые по адресу, без операции реадресации, что улучшает читаемость программы.

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

3.5. Лекция 8. Массивы

При использовании простых переменных каждой области памяти соответствует своё имя.

Если с группой некоторых величин необходимо выполнять однообразные действия, то им дают одно имя, а различают по порядковому номеру. Это позволяет создавать компактный циклический программный код для обработки таких переменных.

Массивы — конечная именованная последовательность однотипных величин.

3.5.1. Одномерные массивы

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

тип имя_массива [размер_массива] [= {инициализаторы}];

или

тип имя_массива [ ] [= {инициализаторы}];

Пример:

float a[10] ; // объявление массива из 10-ти

// вещественных чисел

int i[256] ; // объявление массива из 256-ти целых чисел

unsigned short int d[]= // объявление и инициализация

={15,255,120,0,1}; // массива из 5-ти целых чисел

Примечание (!):

1. Элементы массива нумеруются с нуля.

2. При объявлении массива используются те же модификаторы, что и при объявлении простых переменных.

3. Элементами массива не могут быть функции и элементы типа void.

4. Инициализирующие значения массива записываются в {}. Значения элементам присваиваются по порядку. Если элементов массива больше, чем инициализирующих значений, то элементы, для которых значения не указаны, обнуляются. Например:

int b[5]={3,2,1} ; // b[0]=3 ; b[1]=2 ; b[2]=1 ;

// b[3]=0 ; b[4]=0 .

int c[4]={1,2,3,4} ; // c[0]=1 ; c[1]=2 ; c[2]=3 ; c[3]=4 .

Для доступа к элементу массива указывается его имя и номер элемента в квадратных скобках, который называют индексом, например b[4] (b — имя, 4 — индекс).

Пример:

int main()

{

const int N=10 ; //количество эл-тов массива

int i, sum ;

int a[N]={3,4,5,6,4,3,1} ; //объявление и инициализация

//массива

for (i=0, sum=0 ; i<N ; i++)

sum+=a[i] ;

/* запись sum+=a[i] эквивалентна sum=sum+a[i] */

cout << ''Сумма элементов: '' << sum ;

return 0 ;

}

Замечания:

— память под массив выделяется на этапе компиляции;

— размерность массива может быть задана только целой положительной константой или константным выражением;

— размерность массивов рекомендуется задавать с помощью именованных констант (см. пример выше);

— (!) при обращении к элементам массива автоматический контроль выхода индекса за границу массива не производится, что может привести к ошибкам.