Содержание
- 2. Оглавление Описание указателей Инициализация указателей Действия с указателями Связь массивов и указателей Динамические массивы (одномерные) Динамические
- 3. Описание указателя Указатели - переменные для хранения адресов областей памяти. В С++ различают три вида указателей:
- 4. Указатель на функцию Содержит адрес в сегменте кода, по которому располагается исполняемый код функции. Указатель функции
- 5. Указатель на объект Содержит адрес области памяти, в которой хранятся данные определенного типа (основного или составного).
- 6. Указатель на void Применяется, когда тип объекта не определен. Указателю на void можно присвоить значение указателя
- 7. Использование указателей (1 из 3) при работе с динамической памятью, называемой кучей (heap). Куча - свободная
- 8. Использование указателей (2 из 3) Перед использованием указателя его надо инициализировать, т. е. присвоить значение. Использование
- 9. Инициализация указателей (1 из 3) Способы инициализации указателя: Присваивание указателю адреса существующего объекта Присваивание указателю адреса
- 10. Присваивание указателю адреса существующего объекта с помощью операции получения адреса: int а=5; // целая переменная int*
- 11. Присваивание указателю адреса области памяти в явном виде char* vp = (char *) 0xB8000000; Здесь 0хВ8000000
- 12. Присваивание указателю адреса области памяти в явном виде (доп) Пример. char * const key_byte =(char *)1047;
- 13. Присваивание указателю пустого значения Можно использовать константу NULL, определенную как указатель, равный нулю, Можно использовать и
- 14. Выделение участка памяти (1) А) c помощью операции new, синтаксис: new имя_типа (иницииализатор) Б) с помощью
- 15. Выделение участка памяти (2) Примеры: int* n = new int; //1 int* b = new int
- 16. Действия с указателями С указателями можно выполнять следующие операции: разыменование, или косвенное обращение к объекту (*),
- 17. Операции: разадресации, или разыменования Разыменование - доступ к величине, адрес которой хранится в указателе. Можно использовать
- 18. Приведение типов для указателей (1) Пример: #include void main() { unsigned long L=0x12345678; char *cp=(char *)&L;
- 19. Приведение типов для указателей (2) На экран возможен следующий вывод: Адрес L=0x8fe10ffc cp= 0x8fe10ffc *cp= 0x78
- 20. Схема размещения в памяти переменной L типа unsigned long
- 21. Арифметические операции с указателями (1) Инкремент char * р = new char [5]: p++; // значение
- 22. Арифметические операции с указателями (2) Вычитание Разность двух указателей — это разность их значений, деленная на
- 23. Связь массивов и указателей Имя массива – указатель на его начало int A[8]={12, 0, 2, 3,
- 24. Динамическое создание массивов #include void main() { int n; //размерность массива int *mm; cout > n;
- 25. Динамическое создание матрицы (1) Способ 1. Использование одномерного динамического массива int n,m; //размерность матрицы cout >n;
- 26. Динамическое создание матрицы (2) Способ 2. Использование вспомогательного динамического массива указателей Схема.
- 27. Одномерный массив указателей 0 1 2 Указатели типа int * 0 1 2 3 n одномерных
- 28. План создания динамической матрицы Описать двойной указатель Задать размерность матрицы Выделить память под вспомогательный массив указателей
- 29. Динамическое создание матрицы (2) Способ 2. Использование вспомогательного динамического массива указателей int n,m; //размерность матрицы cout
- 30. Динамическое создание матрицы (2) //заполнение массива указателей, //выделение памяти для каждой строки матрицы for (int i=0;
- 31. Удаление матрицы //обработка элементов матрицы в соответствии // с условием задачи …. //удаление строк матрицы for
- 32. Итоги Рассмотренные вопросы: Указатели Понятие , способы описания и инициализации действия с указателями Связь с массивами
- 33. 24.04.2016 Библиографический список Подбельский В.В. Язык СИ++. Учебное пособие. М.: Финансы и статистика, 2003. – 560
- 35. Скачать презентацию