Содержание
- 2. Определение указателей При объявлении переменных, компилятор выделяет для них память, размер которой определяется указанным типом и
- 3. Звездочка относится непосредственно к Имени_Указа-теля, поэтому для объявления несколько указателей, ее нужно записывать перед каждым. Например:
- 4. Указатель может быть константой или переменной, а также указывать на константу или переменную. С указателями-переменными связаны
- 5. Операция разадресации используется как для получения значения величины, адрес которой хранится в указателе, так и для
- 6. Выражение *Имя_Указателя можно использовать в левой части оператора присваивания, т.к. оно является L-значением, т.е. определяет адрес
- 7. Инициализация указателей Опасная ошибка – использование неинициализирован-ных указателей, поэтому желательно присвоить указателю начальное значение уже при
- 8. в) с помощью имени массива или функции, которые трактуются как адрес начала участка памяти, в котором
- 9. 2. Присваивание пустого значения: int *x1 = NULL; int *x2 = 0; Константа NULL – указатель,
- 10. Операция sizeof (размер …) Формат sizeof ( Параметр ); Параметр – тип или имя объекта (не
- 11. Операции над указателями Помимо уже рассмотренных операций, с указателями можно выполнять арифметические операции сложения, инкремента (++),
- 12. При работе с массивами, инкремент перемещает указатель к следующему элементу массива, декремент – к предыдущему. Указатель,
- 13. С указателями могут использоваться любые операции сравнения, но чаще используются отношения равенства или неравенства. Другие отношения
- 14. Связь указателей и массивов Работа с массивами тесно связана с применением указателей. Рассмотрим эту связь на
- 15. Указатель а – адрес начала массива (А0). Тогда адрес первого элемента А1 = А0 + sizeof(int)
- 16. Очевидна и эквивалентность выражений: – Адрес начала массива в памяти: &а[0] ↔ &(*а) ↔ а –
- 17. Указатели на указатели Указатели, как и переменные любого другого типа, могут объединяться в массивы. Объявление массива
- 18. Например: int a = 5; int *p = &a; int **pp = &p; int ***ppp =
- 19. Многомерные массивы Декларация многомерного массива: Тип Имя_Массива [Размер1][Размер2]…[РазмерN] ; Наиболее быстро изменяется последний индекс, т.к. многомерные
- 20. Схема размещения массива а в памяти: Причем в данном случае, указатель а[1] имеет адрес равный а[0]
- 21. Обращению к элементам массива при помощи операции индексации а[i][j] соответствует эквивалентное выражение, использующее адресную арифметику –
- 22. Динамические массивы Работа с динамическими массивами связана с опера-циями их создания и уничтожения по запросу программы,
- 23. Рассмотрим эти операции на простых примерах: 1) type *p = new type (Значение); – захват участка
- 24. Результат операции new – адрес начала выделенного участка памяти для размещения данных, указанного типа и количества,
- 25. Создание одномерного динамического массива Кусочек кода, необходимый для работы с динамическим одномерным массивом вещественных чисел х
- 26. Создание двухмерного динамического массива Создание двухмерного динамического массива выполняется в два этапа: Этап 1: выделяется память
- 27. . . . - Обработка массива for ( i=0; i delete []a[i]; сначала, занятую под элементы,
- 28. Рассмотрим некоторые необходимые участки программ для выполнения лабораторной работы № 6 (реализация ввода-вывода для консольных приложений).
- 29. 1) Ввод элементов массива: for (i = 0; i for (j = 0; j { cout
- 30. 2) Заполнение массива a случайными числами в диапазоне [-10, 10] и вывод их на экран в
- 31. 3) Поиск минимального элемента массива a (в объявление добавим int переменные для индексов минимального элемента i_min
- 32. 4) Поиск минимальных элементов в строках массива a (в объявление добавили указатель int *min для массива
- 33. 5) Сортировка строк массива a по ??? минимальных элементов в строке (в объявление добавили указатель int
- 34. 6) Сортировка строк массива a по ??? первых элементов строк (указатель int *pr используем для перестановки
- 35. 7) Найти количество различных элементов массива a (повторяющиеся элементы считать только один раз). Такого типа задачи
- 36. Рассмотрим два варианта решения этой задачи. 7.1) Посчитаем количество таких элементов, используя массив b отсортированный по
- 37. 7.2) В массиве b удалим (со сдвигом) все повторя-ющиеся элементы, после чего размер nm полученного массива
- 38. 8) В массиве а найти минимальный элемент, лежащий выше побочной диагонали. Решение задач, где работа связана
- 39. 9) Создать массив b (одномерный), k-й элемент которого равен -1, если все элементы k-го столбца массива
- 40. Пример массива n = 3, m = 4: -5 4 -3 0 -7 -1 -2 2
- 41. Адресная функция (дополнительная информация) При работе с массивами каждому массиву выделяется непрерывный участок памяти указанного размера.
- 42. Тогда справедливо следующее: a(i, j) ↔ b(K(i, j)) = b(N1), b – одномерный массив с размером
- 44. Скачать презентацию