Содержание
- 2. Функции
- 6. Перегружаемая функция 1
- 7. Перегружаемая функция 2
- 8. Поменять 2 числа местами
- 9. & взятие адреса
- 10. Указатели позволяют обрабатывать многомерные и одномерные массивы, строки, символы, структуры и массивы структур. динамически создавать новые
- 11. Определение Указатель-это переменная или константа, которая содержит значение адреса другой переменной.
- 12. Объявление указателей и основные операции над ними тип [модификатор] * тип-имя типа переменной, адрес которой будет
- 13. Значение переменной-указателя-это адрес некоторой величины, целое без знака. Указатель содержит адрес первого байта переменной определённого типа.
- 14. указатель содержит адрес нулевого байта этой переменной тип адресуемой переменной определяет, сколько байтов, начиная с нулевого
- 15. Примеры объявлений указателей
- 16. & и * &-получение адреса переменной. *-извлечение значения, расположенного по этому адресу.
- 17. &-имя переменной получение адреса, определяет адрес размещения значения переменной определённого типа. Операндом операции & должно быть
- 18. *-имя указателя получение значения определённого типа по заданному адресу. Определяет содержимое, находящееся по адресу, который содержится
- 19. Косвенная адресация помощью операции * осуществляет доступ к значению по указателю, то есть извлечение значения, расположенного
- 20. Инициализация указателя имя указателя_переменной=&имя_переменной int *ptri,i; //объявление указателя и переменной типа int ptri=&i; //ptri получает значение
- 21. оператор присваивания, использующий имя указателя и * операцию косвенной адресации: Имя_переменной=*имя_указателя Имя указателя –это переменная или
- 22. Взаимосвязь указателя, адреса и значения переменной
- 23. Указатели можно использовать *ptri-значение переменной, находящейся по адресу, содержащемуся в указателе ptri ptri-значение адреса переменной &ptri-адрес
- 24. int i=123, j, *ptri; //объявление переменных и указателя ptri=&i; //инициализация указателя(присвоение адреса i) j=*ptri+1; //переменной i
- 25. Многоуровневая адресация int i=123; //где i-имя переменной int *pi=&i; //pi –указатель на переменную int **ppi=π //ppi-указатель
- 26. Правила Полное количество звёздочек косвенной адресации, равное количеству звёздочек при объявлении указателя, определяет значение переменной. Уменьшение
- 27. Соответствие между количеством уточнений (*) и результатом обращения к значению с помощью указателя
- 29. Операции над указателями Присвоить указателю значение адреса данных, или нуль. Увеличить (уменьшить) значение указателя Прибавить (вычесть)
- 30. задать значение Переменной-указателю Присвоить указателю адрес переменной, имеющей место в оперативной памяти, или нуль: ptri=&i; ptri=NULL;
- 31. Присвоить указателю значение другого указателя, который к этому времени уже инициализирован (имеет определённое значение), например: ptri=ptrj;
- 32. Изменение значений указателя +, ++, -, --
- 34. Связь с массивами int mas[10],*ptrm; ptrm=&mas[0]; *prtm==mas[0]==*(mas+0) ; //значение нулевого элемента массива mas *(ptrm+i)==mas[i]==*(mas+i); //значение i-го
- 35. *mas+2==mas[0]+2; *(mas+i)-3==mas[i]-3;
- 36. *(&(mas[i+1])+2)++; ptrm==&mas[i+1]; //упрощение выражения, i не играет роли ptrm+2==&(mas[i+1])+2; //указатель переводится на 2 элемента вперёд *ptrm++==(*ptrm=*ptrm+1);
- 37. префиксные (слева от имени указателя) постфиксные (справа от имени указателя) Префиксные операции в последовательности справа налево.
- 38. *p++ сначала выполняется префиксная операция над указателем ,то есть определяется значение *p-содержимое, расположенное по адресу px,
- 39. (++(*p)+2) сначала: *p -так как префиксные операции выполняются справа налево. *p=*p+1 -самая ‘левая’ префиксная операция +2
- 40. Проблемы Попытка работать с неинициализированными указателям, то есть с указателем, не содержащим адреса оперативной памяти (ОП),
- 41. Синтаксис указателей data_type *pointerName; data_type — тип данных, pointerName — имя указателя. int *integerPointer;
- 42. // Объявление указателя и простой переменной в одной строке int *pointer1, // это указатель variable; //
- 43. два способа использования указателя Использовать имя указателя без символа *, таким образом можно получить фактический адрес
- 44. Объявление указателя, получение адреса переменной Для того чтобы объявить указатель, который будет ссылаться на переменную, необходимо
- 45. int var = 5; // простое объявление переменной с предварительной инициализацией int *ptrVar; // объявили указатель,
- 46. #include int main() { int var; // обычная целочисленная переменная int *ptrVar; // целочисленный указатель (ptrVar
- 47. & & - унарный оператор, возвращающий адрес операнда в памяти m = &count; //помещает в m
- 49. Варианты обращения к элементам массива
- 50. Обращение через указатели
- 51. Использование адресации
- 52. Структуры
- 53. Общий вид для структур
- 54. Ввод и вывод массива сложный
- 55. Массив структур
- 56. Ввод и вывод массива структур
- 57. Решение
- 58. Массив из более сложных структур
- 59. Более сложный вариант вывода
- 60. Поиск по простой структуре
- 63. Поиск по более сложной структуре
- 64. Поиск максимума. Перегрузка логических операторов
- 65. Поиск минимума
- 66. Поиск максимума
- 67. Для более сложной структуры
- 69. Возможная оптимизация - подбор ключа
- 70. Предоставление массива в виде структуры
- 72. Поиск экстремумов
- 74. Передача по значению
- 75. Передача по ссылке
- 76. Вывод массива
- 77. Массив неизвестного размера
- 78. Использование указателя
- 80. Рекурсивный и нерекурсивый факториал
- 81. И вновь простая обработка массива с сортировкой
- 82. switch case
- 85. Локальная область видимости внутри case
- 86. Структуры
- 87. Структура для времени
- 88. Функции внутри структур
- 93. Сравнение двух времен в лоб
- 94. Сравнение двух времен через перегрузку оператора
- 95. Перегрузка ввода и вывода
- 96. Массив структур
- 97. Ввод и вывод массива структур
- 98. Решение
- 99. Массив из более сложных структур
- 100. Более сложный вариант вывода
- 101. Поиск по простой структуре
- 104. Поиск по более сложной структуре
- 105. Поиск максимума. Перегрузка логических операторов
- 106. Поиск минимума
- 107. Поиск максимума
- 108. Для более сложной структуры
- 110. Возможная оптимизация - подбор ключа
- 111. Предоставление массива в виде структуры
- 113. Поиск экстремумов
- 115. Передача по значению
- 116. Передача по ссылке
- 117. Вывод массива
- 118. Массив неизвестного размера
- 119. Использование указателя
- 121. Рекурсивный и нерекурсивый факториал
- 122. Указатель на функцию void f() { } void (*pf)() = &f; pf(); f - функция. переменная
- 123. void f(int a) { } void g(int b) { } void (*pf)(int) = &f; pf(10); //
- 124. void f() { } void g() { } void (*pf) = &f; // Верно, &f -
- 125. Чтение произвольного числа символов
- 127. Скачать презентацию