Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
EKZAMEN_PO_INFORMATIKE_TEORIYa_1.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
260.1 Кб
Скачать

11) Указатели. Инициализация указателей. Операции с указателями. Ссылки.

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

3 вида указателей:

- на объект

- на функцию

- на void

Указатель на объект содержит адрес области памяти, в которой хранятся данные определенного типа.

формат: тип *имя;

Указатель на функцию содержит адрес начала машинного кода какой-либо функции.

формат: тип (*имя) (список типов аргументов);

Указатель на void применяется в случаях, когда конкретный тип объекта, адрес которого требуется хранить, не определен. Указателю на void можно присваивать значение указателя любого типа, а также сравнивать его с любым указателем.

Инициализация указателей:

1) присваивание указателю имени существующего объекта:

- с помощью операции получения адреса(&)

- с помощью значения другого инициализированного указателя

- с помощью имени массива или функции, которые трактуются как адрес

2) присваивание указателю адреса области памяти в общем виде

3) присваивание пустого (нулевого) значения

4) выделение участка динамической памяти и присваивание ее адреса указателю:

- при помощи операции С++ new

- при помощи Си-функции malloc

Допустимые операции с указателями:

- разадресация или косвенное обращение к объекту (*) – предназначена для доступа к величине, адрес которой хранится в указателе. Конструкцию *имя_указателя можно считать именем переменной, на которую ссылается указатель.

- присваивание (=)

- сложение с целой константой

- вычитание 2ух указателей

- сравнение 2ух указателей

- приведение к типу другого указателя или к целому

Арифметические операции:

- инкремент перемещает указатель к следующему элементу массива, декремент- к предыдущему. Значение указателя изменяется на величину sizeof(тип указателя)

- увеличение или уменьшение указателя на константу приводит к изменению его значения на величину этой константы, умноженную на размер типа указателя

- разность двух указателей – это разность их значений, деленная на размер типа указателя

- суммирование 2 указателей не допускается

Ссылка – синоним имени, указанного при инициализации ссылки

формат: тип &имя = инициализатор;

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

12)Массивы. Динамические массивы. Строки.

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

Объявление массива: float a[10];

В С++ элементы нумеруются с нуля. Инициализирующие значения для массивов записываются в фигурных скобках. Размерность массива Может быть задана только целой положительной константой или константным выражением. Если при описании массива не указана размерность, должен присутствовать инициализатор. Идентификатор массива (его имя) можно рассматривать как указатель на его нулевой элемент.

Динамические массивы создаются при помощи операции new, при этом необходимо указать тип и размерность. Альтернативный способ – использование функции malloc.

int n=100;

float *p=new float [n];

Многомерные массивы объявляются указанием каждого измерения в квадратных скобках.

Строка – массив символ, заканчивающийся нуль-символом (‘\0’). Строку можно инициализировать строковой константой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]