 
        
        Sp_Lab5
.docxМинистерство цифрового развития, связи и массовых коммуникаций Российской Федерации
Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования
«Московский Технический Университет Связи и Информатики»
Кафедра математической кибернетики и информационных технологий
Лабораторная работа №5 по дисциплине «Системное программирование»:
«Основы работы с указателями в языке программирования С»
Выполнил
Проверил:
Фатхулин Тимур Джалильевич
Оглавление
Цель работы 3
Задание на лабораторную работу 3
1. Создайте проект для ознакомительного использования указателей. 3
2. Создайте проект с объявлением и использованием указателей. 3
3. Создайте проект для побайтового заполнения области памяти. 4
4. Создайте проект с использованием указателей общего назначения. 5
5. Создайте проект для побайтового заполнения целочисленного значения с использованием указателей общего назначения. 5
6. Создайте проект с многоуровневой адресацией. 5
Вывод 6
Контрольные вопросы 6
Цель работы
Изучить и практически освоить основы работы с указателями в языке программирования C.
Задание на лабораторную работу
- Создайте проект для ознакомительного использования указателей.
 
Рисунок 1 – Реализация программы ukaz1.c
Вывод: Произошло изменение данных. В первом случае мы выводили данные через переменные, которым задали значения через указали. А во втором случае мы напрямую изменили значения в переменных.
- Создайте проект с объявлением и использованием указателей.
 
Рисунок 2 – Реализация программы ukaz2.c
Вывод: Адрес указателя можно получить, указав его имя, а значение, можно получить с помощью операции «*»
- Создайте проект для побайтового заполнения области памяти.
 
Рисунок 3 – Реализация программы ukaz3.c
Вывод: Программа побайтово заполняет переменную, а после ее выводит. В втором случае происходит изменение одного байта и вывод значения.
- Создайте проект с использованием указателей общего назначения.
 
Рисунок 4– Реализация программы ukaz4.c
Вывод: Происходит использование общего указателя, для дальнейшего вывода данных.
- Создайте проект для побайтового заполнения целочисленного значения с использованием указателей общего назначения.
 
Рисунок 5 – Реализация программы ukaz5.c
Вывод: Происходит заполнение значения через указатель, определяется количество байт, выделенных для переменной и записывается в первый байт числа, далее выводится значение. Далее проверяется содержимое байтов, выделенных для записи числа
- Создайте проект с многоуровневой адресацией.
 
Рисунок 6 – Реализация программы ukaz6.c
Вывод: При изменении значения указателя, который ссылается на указатель, будет изменены везде значения на то число, которое было присвоено указателю, который ссылается на указатель. То есть во всех 2 указателях и 1 переменной будет 1 значение
Вывод
Я научился работать в консоли, работать с командой make и создавать кроссплатформенное приложение.
Контрольные вопросы
- Каково назначение указателей? 
Переменная, предназначенная для хранения адреса какоголибо объекта (переменной, массива и тд.)
- Каким образом можно получить значение адреса, по которому записана переменная? 
Перед именем переменной написать “&”
- Каким образом можно получить доступ (для чтения или записи) к значению, записанному по адресу, хранящемуся в указателе? 
Перед именем переменной написать «*»
- Как объявляются указатели, каким образом они используются? 
«Тип переменной» *«название переменной»
Для того, чтобы ссылаться на адрес ячейки с значением переменной
- Как осуществить побайтовое заполнение области памяти? 
При помощи цикла с переходом на следующий байт
- Зачем используются указатели общего назначения? 
Для созданий функций общего назначения
- Поясните использование указателей общего назначения. 
Например, когда нужно реализовать функцию, принимающую значения разных типов, и, в зависимости от этого, выполняющую различные действия?
- Поясните побайтовое заполнение целочисленного значения с использованием указателя общего назначения. 
При помощи указателя общего назначения происходят все основные действия связанные с изменением значения в памяти
- Зачем нужна многоуровневая адресация? 
Для упрощения изменения огромного количества значений в указателях
- Как реализовывается многоуровневая адресация? 
При помощи указателя, который будет ссылаться на предыдущий указатель и так далее до переменной.
