Содержание
- 2. Указатели Указатели Когда компилятор обрабатывает оператор объявления переменной, например, int var_int = 10;, он выделяет память
- 3. Указатели Программист в своей программе может сам определить свои собственные переменные для хранения адресов памяти. Такие
- 4. Указатели Эти указатели отличаются свойствами и набором допустимых действий (операций). Указатель не является самостоятельным типом, он
- 5. Указатели Тип может быть любым (стандартный, пользовательский), кроме ссылки, причем, к этому моменту тип может быть
- 6. Указатели Рассмотрим пример: double var_double = 55.39566; double *ptr_double = &var_double; int main() { setlocale(0,"RUS"); cout
- 7. Указатели Ответ этой программы: Значение = 55.3957 Адрес = 00419000 Значение через указатель = 57.3957 Величина
- 8. Указатели А сколько байт оперативной памяти будет занимать сам указатель? Выяснить это не сложно: cout Результатом
- 9. Указатели Память выделяемая под указатель зависит от разрядности машины. Указатель на функцию по синтаксису отличается от
- 10. Указатели Рассмотрим пример: int max(int arg_1, int arg_2) { if(arg_1>arg_2)return arg_1; else return arg_2; } double
- 11. Указатели int main() { int var_int_1 = 34, var_int_2 = 22; double var_double_1 = 1.23, var_double_2
- 12. Указатели Указатели на функции позволяют вызвать функцию не напрямую, а косвенно, что повышает гибкость при использовании
- 13. Указатели Указатель на тип void – отдельный указатель, используемый в тех случаях, когда конкретный тип объекта
- 14. Указатели Пример указателя на тип void: float fl = 3.14; float *ptr_float = &fl; int main()
- 15. Указатели Указатель может быть константой или переменной, а также указывать на константу или переменную: const int
- 16. Указатели *Инициализация указателей При объявлении указателя надо стремиться выполнить его инициализацию, то есть присвоить ему некоторое
- 17. Указатели Существуют следующие способы инициализации указателей: Присваивание указателю адреса существующего объекта: - с помощью операции получения
- 18. Указатели Еще один пример: struct Test { int test_int; char test_char; double tetst_double; } test={10, 'A',
- 19. Указатели int main() { Test *ptr_Test = &test; cout test_int test_char tetst_double system("pause"); return 0; }
- 20. Указатели - с помощью значения другого инициализированного указателя float var_float = 3.55f; float *ptr_float_1 = &var_float;
- 21. Указатели - с помощью имени массива unsigned array_int[] = {33, 51, 78, 4, 15}; int main()
- 22. Указатели Известно, что имя массива является указателем на его первый элемент, поэтому следующие выражения эквивалентны: cout
- 23. Указатели - с помощью имени функции void func(int,char){ // ……}; void (*ptr_fun)(int,char) = &func; Знак операции
- 24. Указатели 2. Присваивание указателю адреса области памяти в явном виде: char *vp = (char *)0xB8000000; int
- 25. Указатели 3. Присваивание пустого указателя: short *ptr_short = NULL; long *ptr_long = 0; 4. Выделение участка
- 26. Указатели Здесь в динамической памяти выделяется место для хранения величины типа int. int *p_j = new
- 27. Указатели - с помощью функции malloc: int *p_i = (int *)malloc(sizeof(int)); Функция malloc заимствована из языка
- 28. Указатели На программистском сленге это означает появление «мусора» в памяти. Полезный совет при попытке выделения памяти
- 29. Указатели int main() { float *ptr_float = new float(67.44f); if(!ptr_float) { cout exit(1); } else cout
- 30. Указатели Операции над указателями Как уже было сказано, указатели – переменные, хранящие адреса ячеек памяти, то
- 31. Указатели Определим основные операции допустимые над указателями: операция разадресация (разыменования), косвенное обращение к объекту (*); присваивание;
- 32. Указатели сравнение; приведение типов. При работе с указателями очень часто используется операция получения (взятия) адреса (&).
- 33. Указатели Эта операция симметрична, то есть с ее помощью можно получить значение объекта или изменить его.
- 34. Указатели Эта операция применима только к указателям на объект какого-либо типа и на тип void. К
- 35. Указатели Например, при работе с массивами они допустимы, а с указателями на обычные переменные или с
- 36. Указатели Рассмотрим пример использования арифметических операций: float array_float = {3.2, -44.6, -0.073, 12, 5.0}; // ….
- 37. Указатели Операции инкременты, декремента, вычитание константы рассмотреть самостоятельно. Важную операцию представляет операция преобразования указателей. Преобразование указателей
- 38. Указатели - в стиле языка С++, используя операции static_cast, dynamic_cast, reinterpret_cast, например, static_cast (ptr_int); Операции преобразования
- 39. Указатели Обычно операция преобразования используется при выполнении операции присваивания. Присваивание без явного преобразования допускается если в
- 40. Ссылки *Ссылки Ссылка (ссылочный тип данных) – синоним имени, указанного при инициализации ссылки. Ссылку можно рассматривать
- 41. Ссылки Пример объявления ссылки: int var_int = 57; int &ref_int = var_int; const char &ref_char =
- 42. Ссылки - тип ссылки должен совпадать с типом величины, на которую она ссылается; - не разрешается
- 43. Ссылки Ссылки позволяют использовать в функциях переменные, передаваемые по адресу, без операции разыменования, что упрощает процесс
- 44. Массивы
- 49. Скачать презентацию