🗊 Презентация Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11)

Нажмите для полного просмотра!
Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №1 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №2 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №3 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №4 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №5 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №6 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №7 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №8 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №9 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №10 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №11 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №12 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №13 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №14 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №15 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №16 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №17 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №18 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №19 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №20 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №21 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №22 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №23 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №24 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №25 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №26 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №27 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №28 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №29 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №30 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №31 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №32 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №33 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №34 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №35 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №36 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №37 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №38 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №39 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №40 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №41 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №42 Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11), слайд №43

Содержание

Вы можете ознакомиться и скачать презентацию на тему Указатели и массивы. Указатели и параметры функций. Сложные описания с указателями. (Лекция 11). Доклад-сообщение содержит 43 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

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


Слайд 1


Указатели Алтайский государственный университет Факультет математики и ИТ Кафедра информатики Барнаул 2014
Описание слайда:
Указатели Алтайский государственный университет Факультет математики и ИТ Кафедра информатики Барнаул 2014

Слайд 2


Лекция 11 План Указатели Указатели и массивы Динамические массивы Указатели на функции Указатели и параметры функций Сложные описания с указателями
Описание слайда:
Лекция 11 План Указатели Указатели и массивы Динамические массивы Указатели на функции Указатели и параметры функций Сложные описания с указателями

Слайд 3


Несколько заданий для самопроверки
Описание слайда:
Несколько заданий для самопроверки

Слайд 4


Задание 1 Что выведет программа?
Описание слайда:
Задание 1 Что выведет программа?

Слайд 5


Задание 2 Какие из следующих описаний массивов являются корректными?
Описание слайда:
Задание 2 Какие из следующих описаний массивов являются корректными?

Слайд 6


Задание 3 В каком порядке в памяти располагаются элементы описанного следующим образом массива?
Описание слайда:
Задание 3 В каком порядке в памяти располагаются элементы описанного следующим образом массива?

Слайд 7


Указатели Адреса переменных Что такое указатель? Значение NULL Операции над указателями Нетипизированные указатели Указатели и const
Описание слайда:
Указатели Адреса переменных Что такое указатель? Значение NULL Операции над указателями Нетипизированные указатели Указатели и const

Слайд 8


Что такое адрес переменной? Оперативная память организована как последовательность ячеек (байт) Каждая ячейка имеет собственный адрес (порядковый...
Описание слайда:
Что такое адрес переменной? Оперативная память организована как последовательность ячеек (байт) Каждая ячейка имеет собственный адрес (порядковый номер) Адрес – целое число, чаще записываемое в шестнадцатеричной системе счисления

Слайд 9


Что такое адрес переменной? Каждая переменная размещается в последовательных ячейках (количество ячеек зависит от типа переменной) Адрес переменной –...
Описание слайда:
Что такое адрес переменной? Каждая переменная размещается в последовательных ячейках (количество ячеек зависит от типа переменной) Адрес переменной – адрес первой из этих ячеек

Слайд 10


Как получить адрес переменной? Адрес переменной можно получить с помощью операции & Например, &x даст адрес x:
Описание слайда:
Как получить адрес переменной? Адрес переменной можно получить с помощью операции & Например, &x даст адрес x:

Слайд 11


Что такое указатель? Указатель – переменная, хранящая адрес
Описание слайда:
Что такое указатель? Указатель – переменная, хранящая адрес

Слайд 12


Значение NULL Помимо адресов, указатель может принимать специальное значение NULL, обозначающее недействительный адрес NULL – макроконстанта NULL...
Описание слайда:
Значение NULL Помимо адресов, указатель может принимать специальное значение NULL, обозначающее недействительный адрес NULL – макроконстанта NULL чаще всего (но не всегда!) равен 0 Разадресовывать указатель со значением NULL небезопасно!

Слайд 13


Операции над указателями Указатель может быть инициализирован Указателю можно присваивать значение Указатель можно сравнивать: < > = == != (т.е....
Описание слайда:
Операции над указателями Указатель может быть инициализирован Указателю можно присваивать значение Указатель можно сравнивать: < > = == != (т.е. вычислять отношения адресов)

Слайд 14


Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа...
Описание слайда:
Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа относительно исходного

Слайд 15


Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа...
Описание слайда:
Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа относительно исходного

Слайд 16


Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа...
Описание слайда:
Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа относительно исходного

Слайд 17


Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа...
Описание слайда:
Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа относительно исходного

Слайд 18


Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа...
Описание слайда:
Операции над указателями Указатель может складываться с целым числом N. Результат сложения – адрес, смещенный на N компонент соответствующего типа относительно исходного

Слайд 19


Операции над указателями Можно вычислять разность однотипных указателей, которая равна относительному смещению с учетом типа указателя
Описание слайда:
Операции над указателями Можно вычислять разность однотипных указателей, которая равна относительному смещению с учетом типа указателя

Слайд 20


Нетипизированный указатель Типизированные указатели (int *, char *, double *, …) неявно задают длину фрагмента памяти (4,1,8, …), начинающегося с...
Описание слайда:
Нетипизированный указатель Типизированные указатели (int *, char *, double *, …) неявно задают длину фрагмента памяти (4,1,8, …), начинающегося с адреса, хранимого указателем Длина важна при разадресации и адресной арифметике Однако иногда приходится использовать указатели, не подразумевая длины адресуемого фрагмента памяти – void * Разадресация указателя void * невозможна! Указатель void * совместим по типу со всеми типизированными указателями

Слайд 21


Указатели и const Два способа описания константного указателя Неизменяемый указатель Синтаксис: TYPE * const ptrName = &aTYPEVar;...
Описание слайда:
Указатели и const Два способа описания константного указателя Неизменяемый указатель Синтаксис: TYPE * const ptrName = &aTYPEVar; Переменная-указатель – константа (не может изменяться) Данные, адресуемые указателем – изменяемые

Слайд 22


Указатели и const Два способа описания константного указателя Указатель на неизменяемые данные Синтаксис: const TYPE * ptrName = &aTYPEVar;...
Описание слайда:
Указатели и const Два способа описания константного указателя Указатель на неизменяемые данные Синтаксис: const TYPE * ptrName = &aTYPEVar; Переменная-указатель – может изменяться Данные, адресуемые указателем – неизменяемые

Слайд 23


Указатели и массивы Указатели и массивы Массивы как параметры функций Указатели на многомерные массивы
Описание слайда:
Указатели и массивы Указатели и массивы Массивы как параметры функций Указатели на многомерные массивы

Слайд 24


Указатели и массивы Указатели и массивы очень тесно связаны в языке Си Имя массива – константный указатель на 0-й элемент массива a[i] == *(a+i)
Описание слайда:
Указатели и массивы Указатели и массивы очень тесно связаны в языке Си Имя массива – константный указатель на 0-й элемент массива a[i] == *(a+i)

Слайд 25


Указатели и массивы a[i] == *(a+i) == *(i+a) == i[a] a[2] == *(a+2) == *(2+a) == 2[a]
Описание слайда:
Указатели и массивы a[i] == *(a+i) == *(i+a) == i[a] a[2] == *(a+2) == *(2+a) == 2[a]

Слайд 26


Указатели и массивы Синонимичные выражения Передача массива в функцию как параметра
Описание слайда:
Указатели и массивы Синонимичные выражения Передача массива в функцию как параметра

Слайд 27


Указатели на многомерные массивы Для вычисления адреса элемента двумерного массива компилятору нужно «знать» количество столбцов в матрице (т.е. мало...
Описание слайда:
Указатели на многомерные массивы Для вычисления адреса элемента двумерного массива компилятору нужно «знать» количество столбцов в матрице (т.е. мало знать начальный адрес масива) Пусть нужно передать в функцию массив int array[3][15], чтобы ее вызов выглядел так: f(array) Возможны следующие идентичные варианты описания функции f: f(int x[3][15]) { … } f(int x[][15]) { … } f(int (*x)[15]) { … } Важно: в последнем случае нельзя опустить скобки! f(int *x[15]) { … } – передается массив из 15 указателей на int, а не указатель на массив из 15 int-ов

Слайд 28


Динамические массивы Динамические массивы Выделение памяти, malloc() Освобождение памяти, free()
Описание слайда:
Динамические массивы Динамические массивы Выделение памяти, malloc() Освобождение памяти, free()

Слайд 29


Динамические массивы Часто размер массива заранее не известен, а известен лишь в момент исполнения Требуется динамически распределять массив в памяти...
Описание слайда:
Динамические массивы Часто размер массива заранее не известен, а известен лишь в момент исполнения Требуется динамически распределять массив в памяти Стандартная функция malloc() позволяет запросить память у ОС Для использования malloc() нужно подключать stdlib.h Полный прототип функции: void *malloc(size_t size); malloc() возвращает нетипизированный указатель на начальный байт выделенного массива. Для дальнейшего использования обычно указатель преобразуют в типизированный

Слайд 30


Динамические массивы Шаблон программы, использующей динамический массив
Описание слайда:
Динамические массивы Шаблон программы, использующей динамический массив

Слайд 31


Динамические массивы Выделенную память необходимо освобождать Стандартная функция free() позволяет освободить память , выделенную malloc() Блоки...
Описание слайда:
Динамические массивы Выделенную память необходимо освобождать Стандартная функция free() позволяет освободить память , выделенную malloc() Блоки памяти освобождаются целиком, т.е. невозможно частичное освобождение (см. также функцию realloc()) Полный прототип функции: void free(void *ptr);

Слайд 32


Указатели на функции Указатели на функции Пример
Описание слайда:
Указатели на функции Указатели на функции Пример

Слайд 33


Указатели на функции Укaзатель на функцию содержит адрес тела функции Как описывается указатель на функцию?
Описание слайда:
Указатели на функции Укaзатель на функцию содержит адрес тела функции Как описывается указатель на функцию?

Слайд 34


Указатели на функции: пример
Описание слайда:
Указатели на функции: пример

Слайд 35


Указатели и параметры функций Указатели в параметрах функций
Описание слайда:
Указатели и параметры функций Указатели в параметрах функций

Слайд 36


Как передаются параметры через указатель? В функцию передается не значение, а адрес переменной
Описание слайда:
Как передаются параметры через указатель? В функцию передается не значение, а адрес переменной

Слайд 37


Как изменить переменную в вызывающей функции?
Описание слайда:
Как изменить переменную в вызывающей функции?

Слайд 38


Сложные описания с указателями Сложные объявления Правила чтения сложных объявлений Класс памяти typedef
Описание слайда:
Сложные описания с указателями Сложные объявления Правила чтения сложных объявлений Класс памяти typedef

Слайд 39


Сложные описания с указателями char **argv argv: указатель на указатель на char int (*x)[13] x: указатель на массив из 13 int-ов int *x[13] x: массив...
Описание слайда:
Сложные описания с указателями char **argv argv: указатель на указатель на char int (*x)[13] x: указатель на массив из 13 int-ов int *x[13] x: массив из 13 указателей на int void *comp() comp: функция, возвращающая указатель на void void (*comp)() comp: указатель на функцию, возвращающую void char (*(*x())())[5] x: функция, возвращающая указатель на массив из 5 указателей на функцию, возвращающую char char (*(*x[3])())[5] x: массив из 3 указателей на функцию, возвращающую указатель на массив из 5 char-ов

Слайд 40


Сложные описания с указателями Чтобы понять подобные сложные объявления используйте следующие три правила: Начинайте с имени переменной (d или foo в...
Описание слайда:
Сложные описания с указателями Чтобы понять подобные сложные объявления используйте следующие три правила: Начинайте с имени переменной (d или foo в примерах выше) Заканчивайте на имени типа (double или char выше) Идите вправо пока можно, затем влево (влево необходимо идти при обнаружении закрывающейся скобки) Например

Слайд 41


Сложные описания с указателями Еще пример
Описание слайда:
Сложные описания с указателями Еще пример

Слайд 42


Сложные описания с указателями Как можно упростить понимание сложных объявлений? Ответ: использовать оператор typedef
Описание слайда:
Сложные описания с указателями Как можно упростить понимание сложных объявлений? Ответ: использовать оператор typedef

Слайд 43


Вопросы? Указатели Указатели и массивы Динамические массивы Указатели на функции Указатели и параметры функций Сложные описания с указателями
Описание слайда:
Вопросы? Указатели Указатели и массивы Динамические массивы Указатели на функции Указатели и параметры функций Сложные описания с указателями



Похожие презентации
Mypresentation.ru
Загрузить презентацию