Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ЛР-4 / ЯП №4

.pdf
Скачиваний:
3
Добавлен:
25.05.2026
Размер:
372.53 Кб
Скачать

Министерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования

ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра безопасности информационных систем (БИС)

УКАЗАТЕЛИ И ССЫЛКИ Отчет по лабораторной работе №4

по дисциплине «Языки программирования»

Студент гр.

_______

_______

Принял:

Доцент каф. КИБЭВС,

д.т.н., доцент

_______ Романов А. С.

_______

Томск 2026

 

Оглавление

Введение...................................................................................................................

3

Ход работы...............................................................................................................

4

Заключение ..............................................................................................................

9

2

Введение

Цель работы – изучение механизмов работы указателей и ссылок.

В ходе работы был написан код на ЯП С++, а также, на выбранном по желанию, Python. Были реализованы типизированные и нетипизированными указатели. Были реализовано сравнение ссылок и указателей. Написан код для указателей на данные и функции. Показана разница между указателей-

константами и указателями на константы. Написано ссылание указателей на указатели. Произведена работа с многоуровневыми указателями.

Код написан на ЯП C++ и Python.

3

Ход работы

На рисунке 1.1 сравниваются типизированные и нетипизированные указатели. Рисунок 1.2 демонстрирует синтаксис указателя на функцию.

Рисунок 1.3 показывает разницу между самим указателем и указуемым объектом. Рисунок 1.4 поясняет отличие константного указателя от указателя на константу. На рисунке 1.5 приведён пример многоуровневой адресации, а

на рисунке 1.6 — ключевые отличия указателей от ссылок.

Рисунок 1.1 – Код сравнения типизированных и не типизированных

указателей

Рисунок 1.2 – Код указателя на функцию

4

Рисунок 1.3 – Код разницы между указателем и указуемым объектом

Рисунок 1.4 – Код указателя константы и указателя на константу

Указатель-константа можно менять значение указуемого объекта, но нельзя менять значение самого указателя.

Указатель на константу значение указуемого объекта менять нельзя, но сам указатель можно переназначать.

5

Рисунок 1.5 – Код многоуровневого указателя

Многоуровневые указатели — это указатели, которые ссылаются на другие указатели. Число звёздочек * при объявлении определяет уровень вложенности. Чтобы получить доступ к значению, на которое ссылается указатель, его необходимо разыменовывать соответствующее количество раз.

Рисунок 1.6 – Код разницы между указателями и ссылками.

Указатель — переменная, хранящая адрес другого объекта; требует явного разыменования (*ptr) для доступа к значению; можно переназначать на другой адрес; может быть nullptr.

Ссылка — псевдоним существующего объекта; объявляется как тип& имя = объект; автоматически разыменовывается при использовании;

нельзя переназначить после инициализации; не может быть null.

6

На рисунке 1.7 сравниваются типизированные и нетипизированные указатели. Рисунок 1.8 демонстрирует синтаксис указателя на функцию.

Рисунок 1.9 показывает разницу между самим указателем и указуемым объектом. На рисунке 1.10 приведён пример многоуровневой адресации, а на рисунке 1.11 — ключевые отличия указателей от ссылок, а на рисунке 1.12 —

ключевые отличия указателей от ссылок.

В Python нет явных указателей. Все переменные — это имена-ссылки

(references), привязанные к объектам в куче. Управление памятью автоматическое (GC + подсчёт ссылок). Ниже показаны концептуальные аналоги с пояснениями.

Рисунок 1.7 – Код сравнения типизированных и не типизированных ссылок

Рисунок 1.8 – Код указателя на функцию

7

Рисунок 1.9 – Код разницы между переменной и объектом

Рисунок 1.10 – Код аналога константных указателей

8

Рисунок 1.11 – Код многоуровневых ссылок

Рисунок 1.12 – Код указателей и ссылок

9

Заключение

В ходе выполнения работы было осуществлено изучение механизмов

работы указателей и ссылок.

10

Соседние файлы в папке ЛР-4