Презентация Структуры, препроцессор, динамическая память онлайн

На нашем сайте вы можете скачать и просмотреть онлайн доклад-презентацию на тему Структуры, препроцессор, динамическая память абсолютно бесплатно. Урок-презентация на эту тему содержит всего 14 слайдов. Все материалы созданы в программе PowerPoint и имеют формат ppt или же pptx. Материалы и темы для презентаций взяты из открытых источников и загружены их авторами, за качество и достоверность информации в них администрация сайта не отвечает, все права принадлежат их создателям. Если вы нашли то, что искали, отблагодарите авторов - поделитесь ссылкой в социальных сетях, а наш сайт добавьте в закладки.
Презентации » Образование » Структуры, препроцессор, динамическая память



Оцените!
Оцените презентацию от 1 до 5 баллов!
  • Тип файла:
    ppt / pptx (powerpoint)
  • Всего слайдов:
    14 слайдов
  • Для класса:
    1,2,3,4,5,6,7,8,9,10,11
  • Размер файла:
    413.50 kB
  • Просмотров:
    48
  • Скачиваний:
    1
  • Автор:
    неизвестен



Слайды и текст к этой презентации:

№1 слайд
Введение в С Структуры,
Содержание слайда: Введение в С++ Структуры, препроцессор, динамическая память

№2 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Структуры Формат: struct <имя-структуры> { <список-полей> } ; struct <имя-структуры> <описатели-переменных> ; struct [<имя-структуры>] { <список-полей> } <описатели-переменных> ; Аналоги структур в реальной жизни – различные формуляры, анкеты, учетные карточки. Существует два способа доступа к полям структурных переменных: <имя-структурной-переменной> . <имя-поля> <указатель-на-структурную-переменную> -> <имя-поля> Пример: электронная картотека для домашней библиотеки struct form { char *ptitle; наименование книги char *pauthor; автор float price; стоимость } ; struct form books [ 1024 ] ; картотека есть массив структур struct form *pbook = books ; указатель на массив структур

№3 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Разработаем getprice – функцию для поиска книги в картотеке по её названию и выдачи стоимости книги. Вариант 1 – используем индексы Вариант 2 – используем адресную арифметику

№4 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Битовые поля Рассмотрим структуру специального вида: struct { unsigned field_1 : 3 ; unsigned field_2 : 3 ; unsigned : 2 ; unsigned mask : 8 ; } fields ; Работа с битовыми полями по именам: fields.field_1 = 0; fields.field_2 = 07; fields.mask ^= fields.mask; Именованные битовые поля используются для экономии памяти и для работы с аппаратными регистрами.

№5 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Объединения Формат: union <имя-объединения> { <список-полей> } ; union <имя-объединения> <описатели-переменных> ; union [<имя-объединения>] { <список-полей> } <описатели-переменных> ; Объединения – это такие структуры, в которых поля накладываются друг на друга. Примеры:

№6 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Определение типа Формат: typedef <спецификация-типа> <описатели> ; Примеры:

№7 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Препроцессор Препроцессор есть текстовый процессор, который просматривает исходный текст до компиляции и решает три задачи: обрабатывает символические имена; отыскивает и вставляет файлы; осуществляет условную компиляцию. Директивы #define и #undef формат: #define <имя> <текст> #define <имя> ( <список-параметров> )<текст> // это макрос #undef <имя> примеры: #define LENGTH 80 #define ABS (x) ( (x) >0 ? (x) : -(x) ) #define MAX (x, y) ( (x) > (y) ? (x) : (y) ) Зачем нужны скобки? Потому что возможны побочные эффекты, например #define MAX (a, b+c) ( a > b + c ? a : b + c ) #define ABS ( ++p ) ( ++p >0 ? ++p : -++p )

№8 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Директива #include формат: #include <имя-пути> #include “имя-пути” примеры: #include <iostream> // ищет файл в стандартных директориях #include “c:file1.h” // ищет файл в конкретной директории #include “file2.h” // ищет файл в текущей директории Условная компиляция реализуется с помощью следующих директив: #if #elif #else #endif defined undef формат: #if <константное-выражение-1> [ <текст-1> ] [ #elif <константное-выражение-2> [ <текст-2> ] ] [ #elif <константное-выражение-3> [ <текст-3> ] ] ……………………………….. [ #else [ <текст-n> ] ] #endif Такие конструкции часто используются при инсталляции и настройке программных продуктов.

№9 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память пример: #if ( sizeof (void* ) == 2 ) #define _SMALL_ #elif ( sizeof (void* ) == 4 ) #define _LARGE_ // модель памяти #else printf ( “ ? “) ; #endif пример: #if ( defined ( _SMALL_) && undef ( _LARGE_ ) ) #include “file.h” #endif Популярные макросы для работы с символами находятся в файле <ctype.h>: isalpha ( c ) - символ есть буква? isdigit ( c ) - символ есть цифра? isalnum ( c ) - символ есть буква или цифра? isspace ( c ) - пробельный символ (пробелы, табуляция, переводы строки? islower ( c ) - символ нижнего регистра? isupper ( c ) - символ верхнего регистра? ………………..

№10 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Динамическая память Динамическая память выделяется и освобождается по явным запросам из программы. Время жизни объектов, размещенных в динамической памяти, контролируется программистом явным образом. В заголовочном файле <alloc.h> описаны прототипы функций malloc, calloc, realloc, free - все они рабочие, но являются анахронизмами. Более корректный способ получения динамической памяти следующий: < указатель > = new <тип-объекта> [ ( <инициализаторы> ) ] Если динамическая память будет успешно выделена, операция new вернет адрес выделенной памяти. В противном случае она вернет значение NULL. Освободить ранее полученную динамическую память можно операцией delete delete < указатель > Попытка освободить динамическую память, которая не была вами получена, приведет к ошибке времени выполнения. примеры: int *p = new int (3); char *s = new char [20];

№11 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Пример: ввод строк в динамическую память и выдача их в обратном порядке.

№12 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Программный стек Программный стек – часть памяти компьютера, которая используется для размещения автоматических переменных и обмена данными между функциями. Рассмотрим следующий фрагмент кода:

№13 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Рисунок, поясняющий работу программного стека:

№14 слайд
Структуры, препроцессор,
Содержание слайда: Структуры, препроцессор, динамическая память Несколько причудливых описаний Пусть имеется такое описание: struct { int x; char *y; } *p; Интерпретируйте следующие выражения в соответствии с правилами языка Си: ++p -> x p++ -> x *p -> y *p -> y++ *p -> ++y *p++ -> y *++p -> y p+++y Студенты, допустившие не более 1 ошибки, получают 5 баллов за активность.

Скачать все slide презентации Структуры, препроцессор, динамическая память одним архивом: