Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР 4.docx
Скачиваний:
0
Добавлен:
15.03.2025
Размер:
343.29 Кб
Скачать

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

«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)

Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)

Указатели и ссылки

Отчет по лабораторной работе №4

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

Студент гр. 723-1

________

______2025г

Руководитель

младший научный сотрудник

_______ А.В. Куртукова

_______2025г

Введение

Цель работы:

Изучение механизмов работы указателей и ссылок

Задание

  1. Изучить краткие теоретические сведения.

  2. Подготовить примеры использования указателей и ссылок для языка C++ и языка программирования, определенного выбранным вариантом. Сравнить возможности языков. При этом продемонстрировать:

    1. разницу между типизированными и нетипизированными указателями;

    2. разницу между указателями на данные и на функции;

    3. разницу между указателем и указуемым объектом;

    4. разницу между указателями-константами и указателями на константу;

    5. особенности работы с многоуровневыми указателями;

    6. разницу между указателями и ссылками.

3. Написать отчет и защитить у преподавателя.

Ход работы

1 Программа на С++

В самом начале работы была создана программа на языке программирования C++, демонстрирующая работу указателей и ссылок.

Часть программы, показывающая разницу между типизированными и нетипизированными указателями (рисунок 1.1).

Рисунок 1.1 – Разница между типизированными и нетипизированными указателями

Часть программы, показывающая разницу между указателями на функции и указателями на данные (рисунок 1.2).

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

Можно заметить, что для указателей на функции определена операция вызова функции.

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

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

На следующем этапе работы была создана часть программы, показывающая разницу между указателями-константами и указателями на константы (рисунок 1.4).

Рисунок 1.4 – Разница между указателями-константами и указателями на константы

Отличие заключается в том, что указатель-константа, в отличие от указуемого объекта нельзя изменять. Сам же указатель в данном случае может изменяться.

Далее были рассмотрены особенности работы с многоуровневыми указателями (рисунок 1.5).

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

Рисунок 1.5 – Особенности работы с многоуровневыми указателями

На последнем этапе нужно было показать разницу между указателями и ссылками (рисунок 1.6).

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

Написанный код программы представлен в приложение А.

1 Программа на с#

На рисунке 1.7 представлен код сравнения типизированных и не типизированных указателей.

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

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

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

На рисунке 1.9 представлен код разницы между указателем и указуемым объектом.

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

На рисунке 1.10 представлены код указателя константы и указателя на константу.

Рисунок 1.10 – Разница между указателями-константами и указателями на константы

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

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

На рисунке 1.12 представлен код разницы между указателями и ссылками.

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

Написанный код программы представлен в приложение Б.

Соседние файлы в предмете Языки программирования