Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab_cpp.doc
Скачиваний:
10
Добавлен:
07.06.2015
Размер:
2.81 Mб
Скачать

Ход работы

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

  2. В соответствии с индивидуальным заданием разработать алгоритм решения задачи. Объявить комбинированные типы, массивы структур, указатели на структуру. Использовать указатели в качестве членов структуры, а также для доступа к членам структуры и работы с ними. Объявить объединение и выполнить работу с объединением с использованием указателей. Результаты инициализации, изменения членов комбинированных типов вывести на экран.

  3. Разработать и набрать программу на компьютере, устранить ошибки.

  4. Получить результат.

  5. Оформить отчет.

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

Требования к содержанию отчёта приведены в лабораторной работе №1.

Индивидуальное задание к лабораторной работе №15 взять из работы №3.

Контрольные вопросы для подготовки и самостоятельной работы

  1. Можно ли использовать указатели в качестве данных-членов структур?

  2. Можно ли использовать массивы и структуры в качестве данных-членов структур (вложенные объявления)?

  3. Можно ли использовать в качестве вложенных структуры объявляемого (своего) типа, а также указатели на структуры своего типа?

  4. Как объявить указатель на структуру, массив указателей на структуры? Существуют ли различные варианты объявления?

  5. Можно ли использовать typedef для объявления типа структуры?

  6. Как получить доступ к элементу структуры с помощью указателя?

  7. Как осуществляется доступ к данным-членам структуры при использовании массива указателей на структуры?

  8. Можно ли использовать различные классы памяти применительно к переменным структурного типа?

  9. Обязательно ли указывать ключевое слово struct при объявлении структурного типа, переменных структурного типа?

  10. Можно ли хранить адрес структуры в самой структуре?

Лабораторная работа № 16

Использование указателей для работы с функциями

(2 часа)

Цель работы: выработать практические навыки в написании программ с функциями и в использование указателей для работы с функциями.

Теоретические сведения

С позволяет использовать указатели на базовые типы, на массивы и структуры как параметры передаваемые в функцию и возвращаемые из функции, а также указатели на функции. Общий синтаксис для объявления указателя на структуру как параметры функции:

[const ]тип*имя указателя

При объявлении функции имя указателя как формального параметра может не указываться аналогично другим видам формальных параметров.

Ключевое слово const предохраняет данные от изменения данных в структуре функции, тогда как отсутствие ключевого слова const позволяет функции изменять значения данных, т.к. при использовании указателей в теле функции известны физические адреса переменных.

Пример использования указателей на различные типы данных как параметры функции.

int funct (float*, int*); // передача указателей на тип float и на тип int

struct Мyst

{

//члены;

};

void loadMy(Myst*pmy); // передача указателя рmу на тип структур типа Муst.

В примере объявлена структура типа Myst и объявлена функция loadMy() . Функция имеет формальный параметр-указатель pmy на тип Мyst.

Вызов функции funct() и fn():

Float*pf; int*pl;

Int a = funct(pf, pl); fn(pf);

Объявление указателя на функцию аналогично объявлению функций, с которыми он будет использоваться. Например

void (* pfunc) (int, int);

Объявлен указатель pfunc на функцию, которая требует два параметра типа int и не возвращает значения (void). Типы и количество параметров, а также тип возвращаемого значения должны создать. Для использования указателя объявим функцию

void f1 (int, int);

Присвоим указателю адрес функции

pfunc= f1;

и осуществим её вызов

(*pfunc)(2,4);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]