🗊 Презентация Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию

Нажмите для полного просмотра!
Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №1 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №2 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №3 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №4 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №5 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №6 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №7 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №8 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №9 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №10 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №11 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №12 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №13 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №14 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №15 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №16 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №17 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №18 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №19 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №20 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №21 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №22 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №23 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №24 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №25 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №26 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №27 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №28 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №29 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №30 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №31 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №32 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №33 Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №34

Содержание

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

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


Слайд 1


Указатели Лекция 10
Описание слайда:
Указатели Лекция 10

Слайд 2


Оглавление Описание указателей Инициализация указателей Действия с указателями Связь массивов и указателей Динамические массивы (одномерные)...
Описание слайда:
Оглавление Описание указателей Инициализация указателей Действия с указателями Связь массивов и указателей Динамические массивы (одномерные) Динамические матрицы

Слайд 3


Описание указателя Указатели - переменные для хранения адресов областей памяти. В С++ различают три вида указателей: на объект; на функцию; на тип...
Описание слайда:
Описание указателя Указатели - переменные для хранения адресов областей памяти. В С++ различают три вида указателей: на объект; на функцию; на тип void.

Слайд 4


Указатель на функцию Содержит адрес в сегменте кода, по которому располагается исполняемый код функции. Указатель функции имеет тип «указатель...
Описание слайда:
Указатель на функцию Содержит адрес в сегменте кода, по которому располагается исполняемый код функции. Указатель функции имеет тип «указатель функции, возвращающей значение заданного типа и имеющей аргументы заданного типа»: тип (*имя) ( список типов аргументов );

Слайд 5


Указатель на объект Содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Объявление указателя на...
Описание слайда:
Указатель на объект Содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного). Объявление указателя на объект : тип *имя;

Слайд 6


Указатель на void Применяется, когда тип объекта не определен. Указателю на void можно присвоить значение указателя любого типа, сравнивать его с...
Описание слайда:
Указатель на void Применяется, когда тип объекта не определен. Указателю на void можно присвоить значение указателя любого типа, сравнивать его с любыми указателями, но перед выполнением каких-либо действий с областью памяти, на которую он ссылается, нужно преобразовать его к конкретному типу явным образом.

Слайд 7


Использование указателей (1 из 3) при работе с динамической памятью, называемой кучей (heap). Куча - свободная память, в которой можно во время...
Описание слайда:
Использование указателей (1 из 3) при работе с динамической памятью, называемой кучей (heap). Куча - свободная память, в которой можно во время выполнения программы выделять место в соответствии с потребностями программы. Доступ к выделенным участкам динамической памяти производится только через указатели. Время жизни динамических переменных - от создания до конца программы или до явного освобождения памяти.

Слайд 8


Использование указателей (2 из 3) Перед использованием указателя его надо инициализировать, т. е. присвоить значение. Использование...
Описание слайда:
Использование указателей (2 из 3) Перед использованием указателя его надо инициализировать, т. е. присвоить значение. Использование неинициализированных указателей - источник ошибок в программах. Инициализатор записывается после имени указателя либо в круглых скобках, либо после знака равенства.

Слайд 9


Инициализация указателей (1 из 3) Способы инициализации указателя: Присваивание указателю адреса существующего объекта Присваивание указателю адреса...
Описание слайда:
Инициализация указателей (1 из 3) Способы инициализации указателя: Присваивание указателю адреса существующего объекта Присваивание указателю адреса области памяти в явном виде Присваивание пустого значения Выделение участка памяти

Слайд 10


Присваивание указателю адреса существующего объекта с помощью операции получения адреса: int а=5; // целая переменная int* p=&a // в указатель...
Описание слайда:
Присваивание указателю адреса существующего объекта с помощью операции получения адреса: int а=5; // целая переменная int* p=&a // в указатель записывается адрес а int* р (&a); // то же самое другим способом с помощью значения другого инициализированного указателя: int* r = р: помощью имени массива или функции, которые трактуются как адрес: int B[10]: int* t=B; // присваивание адреса начала массива void f(int а ) {(/* ... */ } // определение функции void (*pf)(int); // указатель на функцию рf=f; // присваивание адреса функции

Слайд 11


Присваивание указателю адреса области памяти в явном виде char* vp = (char *) 0xB8000000; Здесь 0хВ8000000 - шестнадцатеричная константа, (cha r *) -...
Описание слайда:
Присваивание указателю адреса области памяти в явном виде char* vp = (char *) 0xB8000000; Здесь 0хВ8000000 - шестнадцатеричная константа, (cha r *) - операция приведения типа: константа преобразуется к типу «указатель на char».

Слайд 12


Присваивание указателю адреса области памяти в явном виде (доп) Пример. char * const key_byte =(char *)1047; Значение указателя невозможно изменить,...
Описание слайда:
Присваивание указателю адреса области памяти в явном виде (доп) Пример. char * const key_byte =(char *)1047; Значение указателя невозможно изменить, он всегда показывает на байт с адресом 1047 (шестнадцатеричное представление 0х1047). Это - байт состояния клавиатуры. Содержимое этого участка с помощью разыменования указателя-константы как для чтения, так и для изменений. #include void main() {char *const key_b=(char *)1047; cout

Слайд 13


Присваивание указателю пустого значения Можно использовать константу NULL, определенную как указатель, равный нулю, Можно использовать и просто 0...
Описание слайда:
Присваивание указателю пустого значения Можно использовать константу NULL, определенную как указатель, равный нулю, Можно использовать и просто 0 int* sx = NULL int* rz = 0;

Слайд 14


Выделение участка памяти (1) А) c помощью операции new, синтаксис: new имя_типа (иницииализатор) Б) с помощью функций malloc() и calloc(). Синтаксис:...
Описание слайда:
Выделение участка памяти (1) А) c помощью операции new, синтаксис: new имя_типа (иницииализатор) Б) с помощью функций malloc() и calloc(). Синтаксис: имя_указателя=(тип_указателя)malloc(объем_в_байтах); имя_указателя=(тип_указателя)сalloc (число_элементов, размер_эл-та_в_байтах); Освобождение динамично выделенной памяти delete, free.

Слайд 15


Выделение участка памяти (2) Примеры: int* n = new int; //1 int* b = new int (10); //2 int* q = new int [10]; //3 int* u = (int *) malloc (sizeof...
Описание слайда:
Выделение участка памяти (2) Примеры: int* n = new int; //1 int* b = new int (10); //2 int* q = new int [10]; //3 int* u = (int *) malloc (sizeof (int)); //4 int* u = (int *) сalloc (1, sizeof (int)); //5 Пример: delete n; delete [ ]b; free (u);

Слайд 16


Действия с указателями С указателями можно выполнять следующие операции: разыменование, или косвенное обращение к объекту (*), присваивание,...
Описание слайда:
Действия с указателями С указателями можно выполнять следующие операции: разыменование, или косвенное обращение к объекту (*), присваивание, приведение типов, сложение с константой, вычитание, инкремент (++), декремент (--), сравнение

Слайд 17


Операции: разадресации, или разыменования Разыменование - доступ к величине, адрес которой хранится в указателе. Можно использовать как для получения...
Описание слайда:
Операции: разадресации, или разыменования Разыменование - доступ к величине, адрес которой хранится в указателе. Можно использовать как для получения значения, так и для изменения значения: char а; // переменная типа char char * р = new char; /* выделение памяти под указатель и под динамическую переменную типа char */ *р = 'Ю'; а = *р; // присваивание значения обеим переменным Присваивание int *t, *z, y=34; t=&y; z=t;

Слайд 18


Приведение типов для указателей (1) Пример: #include void main() { unsigned long L=0x12345678; char *cp=(char *)&L; int *ip=(int *)&L; long *lp=(long...
Описание слайда:
Приведение типов для указателей (1) Пример: #include void main() { unsigned long L=0x12345678; char *cp=(char *)&L; int *ip=(int *)&L; long *lp=(long *)&L; cout

Слайд 19


Приведение типов для указателей (2) На экран возможен следующий вывод: Адрес L=0x8fe10ffc cp= 0x8fe10ffc *cp= 0x78 ip= 0x8fe10ffc *ip= 0x5678 lp=...
Описание слайда:
Приведение типов для указателей (2) На экран возможен следующий вывод: Адрес L=0x8fe10ffc cp= 0x8fe10ffc *cp= 0x78 ip= 0x8fe10ffc *ip= 0x5678 lp= 0x8fe10ffc *lp= 0x12345678 Присваивание без явного приведения типов допускается в двух случаях: указателям типа void*; если тип указателей справа и слева от операции присваивания один и тот же.

Слайд 20


Схема размещения в памяти переменной L типа unsigned long
Описание слайда:
Схема размещения в памяти переменной L типа unsigned long

Слайд 21


Арифметические операции с указателями (1) Инкремент char * р = new char [5]: p++; // значение р увеличивается на 1 long * q = new long [53]; q++ ; //...
Описание слайда:
Арифметические операции с указателями (1) Инкремент char * р = new char [5]: p++; // значение р увеличивается на 1 long * q = new long [53]; q++ ; // значение q увеличивается на 4 Декремент сложение с константой char * р = new char [5]: int c=3; p=p+c; // значение р увеличивается на 3 long * q = new long [53]; q=q+c; // значение q увеличивается на 12

Слайд 22


Арифметические операции с указателями (2) Вычитание Разность двух указателей — это разность их значений, деленная на размер типа в байтах...
Описание слайда:
Арифметические операции с указателями (2) Вычитание Разность двух указателей — это разность их значений, деленная на размер типа в байтах Суммирование двух указателей не допускается.

Слайд 23


Связь массивов и указателей Имя массива – указатель на его начало int A[8]={12, 0, 2, 3, 4, 5, 65, 8, 3}; int *p; p=A; p=&A[0]; p=&A; Обращение к...
Описание слайда:
Связь массивов и указателей Имя массива – указатель на его начало int A[8]={12, 0, 2, 3, 4, 5, 65, 8, 3}; int *p; p=A; p=&A[0]; p=&A; Обращение к отдельным элементам массива int i=2, x=*p; x=*(p+i); x=p[i];

Слайд 24


Динамическое создание массивов #include void main() { int n; //размерность массива int *mm; cout n; // создание массива mm= new int [n]; //...
Описание слайда:
Динамическое создание массивов #include void main() { int n; //размерность массива int *mm; cout n; // создание массива mm= new int [n]; // заполнение массива for (int i=0; i

Слайд 25


Динамическое создание матрицы (1) Способ 1. Использование одномерного динамического массива int n,m; //размерность матрицы coutn; coutm; int *matr;...
Описание слайда:
Динамическое создание матрицы (1) Способ 1. Использование одномерного динамического массива int n,m; //размерность матрицы coutn; coutm; int *matr; //указатель на начало массива matr=new int [n*m]; //выделение памяти для массива //заполнение матрицы for (int i=0; i

Слайд 26


Динамическое создание матрицы (2) Способ 2. Использование вспомогательного динамического массива указателей Схема.
Описание слайда:
Динамическое создание матрицы (2) Способ 2. Использование вспомогательного динамического массива указателей Схема.

Слайд 27


Указатели. Иллюстративный материал к лекциям по алгоритмизации и программированию, слайд №27
Описание слайда:

Слайд 28


План создания динамической матрицы Описать двойной указатель Задать размерность матрицы Выделить память под вспомогательный массив указателей В цикле...
Описание слайда:
План создания динамической матрицы Описать двойной указатель Задать размерность матрицы Выделить память под вспомогательный массив указателей В цикле выделить память под каждую из строк матрицы (заполнение массива указателей Заполнить матрицу Произвести необходимую обработку Удалить строки матрицы Удалить вспомогательный массив указателей

Слайд 29


Динамическое создание матрицы (2) Способ 2. Использование вспомогательного динамического массива указателей int n,m; //размерность матрицы coutn;...
Описание слайда:
Динамическое создание матрицы (2) Способ 2. Использование вспомогательного динамического массива указателей int n,m; //размерность матрицы coutn; coutm; int **matr; //указатель на начало массива указателей //выделение памяти для вспомогательного //массива указателей matr=new int *[n];

Слайд 30


Динамическое создание матрицы (2) //заполнение массива указателей, //выделение памяти для каждой строки матрицы for (int i=0; i
Описание слайда:
Динамическое создание матрицы (2) //заполнение массива указателей, //выделение памяти для каждой строки матрицы for (int i=0; i

Слайд 31


Удаление матрицы //обработка элементов матрицы в соответствии // с условием задачи …. //удаление строк матрицы for (i=0; i
Описание слайда:
Удаление матрицы //обработка элементов матрицы в соответствии // с условием задачи …. //удаление строк матрицы for (i=0; i

Слайд 32


Итоги Рассмотренные вопросы: Указатели Понятие , способы описания и инициализации действия с указателями Связь с массивами Динамическое выделение...
Описание слайда:
Итоги Рассмотренные вопросы: Указатели Понятие , способы описания и инициализации действия с указателями Связь с массивами Динамическое выделение памяти под массивы

Слайд 33


Библиографический список Подбельский В.В. Язык СИ++. Учебное пособие. М.: Финансы и статистика, 2003. – 560 с. Павловская Т.А. C/C++....
Описание слайда:
Библиографический список Подбельский В.В. Язык СИ++. Учебное пособие. М.: Финансы и статистика, 2003. – 560 с. Павловская Т.А. C/C++. Программирование на языке высокого уровня: учебник для студентов вузов, обучающихся по направлению "Информатика и вычисл. техника" СПб.: Питер, 2005. - 461 с. Березин Б.И. Начальный курс C и C++ / Б.И. Березин, С.Б. Березин. - М.: ДИАЛОГ-МИФИ, 2001. - 288 с Каширин И.Ю., Новичков В.С. От С к С++. Учебное пособие для вузов. – М.: Горячая линия – Телеком, 2005. – 334 с.

Слайд 34


Автор: Саблина Наталья Григорьевна Ст. преподаватель каф. РТС УрФУ
Описание слайда:
Автор: Саблина Наталья Григорьевна Ст. преподаватель каф. РТС УрФУ



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