Отчет 4 - Указатели и ссылки - СФ
.pdfМинистерство науки и высшего образования Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования
ТОМСКИЙ ГОСУДАРСТВЕЕНЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра комплексной информационной безопасности электронно-
вычислительных систем (КИБЭВС)
Указатели и ссылки
Отчет по лабораторной работе № 4 По дисциплине «Языки программирования»
Студент гр. ххх
________ ххх
________
Принял
Ххх
ххх
________ ххх
________
Томск 2023
1 Введение
Целью данной работы является изучение работы указателей и ссылок в языке программирования, изучение их особенностей, выявление разницы между ссылками и указателями, а также сравнение возможностей данного языка.
Для работы был выбран язык программирования C++, а также Python.
2
2 Ход работы
2.1Ход работы в C++
Входе выполнения данной лабораторной работы была написана программа, которая содержит в себе работу с указателями и ссылками, работу с одномерными массивами, двумерными массивами, присваиванием значений указателям и ссылкам, работу с типизированными и нетипизированными указателями, а также работу с константами в языке программирования C++.
На рисунке 2.1.1 показаны функции увеличения переменной без использования самой переменной и её возвращения, используется только указатель на неё, и ссылка.
Рисунок 2.1.1 - Функции увеличения переменной
На рисунке 2.1.2 представлена работа с одномерным массивом и указателем.
Рисунок 2.1.2 - Работа с указателем и одномерным массивом
3
На рисунке 2.1.3 представлена работа с указателями на константный объект и указателем-константой. Показаны ошибки (подчеркнуты красным),
присвоение знаечний.
Рисунок 2.1.3 - Работа с указателями и const
На рисунке 2.1.4 показана работа с типизированными и нетипизированными указателями.
4
Рисунок 2.1.4 – Работа с типизированными и нетипизированными указателями
На рисунке 2.1.5 показана работа с указателями на функции.
Рисунок 2.1.5 - Работа с указателями на функцию
5
На рисунке 2.1.6 показан перебор двухмерного массива с помощью указателя.
Рисунок 2.1.6 – Перебор двухмерного массива, с помошью указателя
На рисунке 2.1.7 предсталвен результат работы всей программы.
Рисунок 2.1.7 - Результат работы программы
6
2.2Ход работы в Python
Вданном языке сборщик мусора работает автоматически. Также в данном языке программирования отсутствуют указатели, поэтому изменять значения переменных с их помощью не возможно. В Python все переменные – это ссылки.
На рисунке представлено переназанчение ссылка с одного списка на другой. Список [1,2,3] удалится сборщиком мусора, из-за того что на этот список отсутсвуют ссылки.
Рисунок 2.2.1 - Переназначение ссылки на другой список
На рисунке 2.2.2 показана работа с присвоениемсписку еще одной ссылки,
и изменение первого элемента списка, после список выводится на экран через ссылку b.
7
Рисунок 2.2.2 - Изменение списка через ссылку и вывод на экран
На рисунке 2.2.3 приведено удаление ссылки на список, после чего на список будет ссылаться только одна сслыка. Если выводить данную сслыку в консоль, то будет возникать ошибка.
Рисунок 2.2.3 - Удаление ссылки на список
8
На рисунке 2.2.4 показана присвоение переменной функции, и вызов её через переменную. В С++ это аналог операции указатель на функцию.
Рисунок 2.2.4 - Присвоение переменной функции
Результат программы приведен на рисунке 2.2.5.
Рисунок 2.2.5 - Результат программы
9
3Заключение
Входе выполнения данной лабораторной работы были получены навыки работы с указателями и ссылками. Была проведена работа с одномерными массивами, функциями, типизированными и нетипизированными указателями, с
указателями на константный объект и указателями-константами, была проведена работа с ссылками, был написан перебор двухмерного массива, с помощью указателя, а также работа с указателями на функции
Код программы на C++ представлен в приложении А. Код программы на
Python представлен в приложении Б.
10