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

Sp_Lab5

.docx
Скачиваний:
8
Добавлен:
01.04.2022
Размер:
351.28 Кб
Скачать

Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский Технический Университет Связи и Информатики»

Кафедра математической кибернетики и информационных технологий

Лабораторная работа №5 по дисциплине «Системное программирование»:

«Основы работы с указателями в языке программирования С»

Выполнил

Проверил:

Фатхулин Тимур Джалильевич

Оглавление

Цель работы 3

Задание на лабораторную работу 3

1. Создайте проект для ознакомительного использования указателей. 3

2. Создайте проект с объявлением и использованием указателей. 3

3. Создайте проект для побайтового заполнения области памяти. 4

4. Создайте проект с использованием указателей общего назначения. 5

5. Создайте проект для побайтового заполнения целочисленного значения с использованием указателей общего назначения. 5

6. Создайте проект с многоуровневой адресацией. 5

Вывод 6

Контрольные вопросы 6

Цель работы

Изучить и практически освоить основы работы с указателями в языке программирования C.

Задание на лабораторную работу

  1. Создайте проект для ознакомительного использования указателей.

Рисунок 1 – Реализация программы ukaz1.c

Вывод: Произошло изменение данных. В первом случае мы выводили данные через переменные, которым задали значения через указали. А во втором случае мы напрямую изменили значения в переменных.

  1. Создайте проект с объявлением и использованием указателей.

Рисунок 2 – Реализация программы ukaz2.c

Вывод: Адрес указателя можно получить, указав его имя, а значение, можно получить с помощью операции «*»

  1. Создайте проект для побайтового заполнения области памяти.

Рисунок 3 – Реализация программы ukaz3.c

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

  1. Создайте проект с использованием указателей общего назначения.

Рисунок 4– Реализация программы ukaz4.c

Вывод: Происходит использование общего указателя, для дальнейшего вывода данных.

  1. Создайте проект для побайтового заполнения целочисленного значения с использованием указателей общего назначения.

Рисунок 5 – Реализация программы ukaz5.c

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

  1. Создайте проект с многоуровневой адресацией.

Рисунок 6 – Реализация программы ukaz6.c

Вывод: При изменении значения указателя, который ссылается на указатель, будет изменены везде значения на то число, которое было присвоено указателю, который ссылается на указатель. То есть во всех 2 указателях и 1 переменной будет 1 значение

Вывод

Я научился работать в консоли, работать с командой make и создавать кроссплатформенное приложение.

Контрольные вопросы

  1. Каково назначение указателей?

Переменная, предназначенная для хранения адреса какоголибо объекта (переменной, массива и тд.)

  1. Каким образом можно получить значение адреса, по которому записана переменная?

Перед именем переменной написать “&”

  1. Каким образом можно получить доступ (для чтения или записи) к значению, записанному по адресу, хранящемуся в указателе?

Перед именем переменной написать «*»

  1. Как объявляются указатели, каким образом они используются?

«Тип переменной» *«название переменной»

Для того, чтобы ссылаться на адрес ячейки с значением переменной

  1. Как осуществить побайтовое заполнение области памяти?

При помощи цикла с переходом на следующий байт

  1. Зачем используются указатели общего назначения?

Для созданий функций общего назначения

  1. Поясните использование указателей общего назначения.

Например, когда нужно реализовать функцию, принимающую значения разных типов, и, в зависимости от этого, выполняющую различные действия?

  1. Поясните побайтовое заполнение целочисленного значения с использованием указателя общего назначения.

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

  1. Зачем нужна многоуровневая адресация?

Для упрощения изменения огромного количества значений в указателях

  1. Как реализовывается многоуровневая адресация?

При помощи указателя, который будет ссылаться на предыдущий указатель и так далее до переменной.

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