- •10. Константы. Правила построения и создания своих собственных (перечислимых) констант.
- •11. Литерные константы (видимые). Литерные константы esc-последовательности. Расширенная таблица ascii. Пример программы.
- •12. Строковые константы. Особенности и примеры их применения.
- •13. Числовые целые константы. Особенности и примеры их применения.
- •14. Числовые вещественные константы. Особенности и примеры их применения.
- •15. Операция присваивания. Пример линейной программы.
- •16. Синтаксис и семантика операторов выражения, перехода и возврата, ветвления и выбора. Пример программы ветвления.
- •17. Синтаксис и семантика операторов цикла, прерывания и продолжения. Пример циклической программы.
- •18. Классификация типов данных. Основные и производные типы данных. Правила преобразования арифметических типов: по умолчанию и явное.
- •19. Арифметические операции и их приоритеты.
- •20. Логические операции. Синтаксис и семантика. Условная операция.
- •21. Виды выражений. Приоритеты операций.
- •22. Символьный тип данных. Операции над данными символьного типа.
- •23. Одномерные массивы. Индексация выражения. Массив как параметр функций.
- •24. Многомерные массивы. Индексация выражения. Массив как параметр функций.
- •25. Массивы с элементами типа char и строковые массивы.
- •26. Указатели: понятие, синтаксис и семантика объявления. Операция выделения значения. Адрес-константа. Операции адресации, адресная арифметика.
- •27. Взаимодействие между массивами и указателями. Динамические массивы. Операции выделения и освобождения памяти.
- •28. Тип данных «структура». Объявление, синтаксис и особенности использования.
- •29. Динамические типы данных. Список. Основные операции над элементами списка. Примеры.
- •30. Динамические типы данных. Очередь. Основные операции над элементами очереди. Примеры.
- •31. Динамические типы данных. Стек. Основные операции над элементами стека. Примеры.
- •32. Динамические типы данных. Бинарное сбалансированное дерево. Правила обхода. Основные операции над элементами. Примеры.
- •33. Классы памяти. Точки описания переменных. Автоматическая, регистровая, внешняя, статическая память. Области объявления и видимости имен переменных. Примеры.
- •34. Ссылки: понятие, синтаксис и семантика объявления. Примеры использования.
- •35. Синтаксис, семантика и прагматика функций. Указатели функций. Примеры.
- •36. Механизм передачи значений между параметрами и аргументами функции. Примеры.
- •37. Рекурсивные функции. Примеры явной и косвенной рекурсии.
- •38. Перегрузка функций. Шаблоны функций. Примеры.
- •39. Препроцессор. Команды препроцессора. Использование макроподстановок и макроимен. Команды условной компиляции.
- •40. Объектно-ориентированное программирование. Инкапсуляция, наследование, полиморфизм.
- •41. Понятие объекта и класса. Данные и методы. Инкапсуляция данных и методов класса.
- •42. Тип данных class. Статусы доступа к данным. Указатель this. Конструкторы и деструкторы.
- •43. Дружественные функции, методы, классы. Статические члены класса.
- •44 Наследование классов и производные классы.
34. Ссылки: понятие, синтаксис и семантика объявления. Примеры использования.
Ссылка представляет собой синоним имени, указанного при инициализации ссылки. Ссылку можно рассматривать как указатель, который всегда разыменовывается. Формат объявления ссылки:
тип & имя;
где тип — это тип величины, на которую указывает ссылка, & — оператор ссылки, означающий, что следующее за ним имя является именем переменной ссылочного типа.
Переменная-ссылка должна явно инициализироваться при ее описании, кроме случаев, когда она является параметром функции, описана как extern или ссылается на поле данных класса.
После инициализации ссылке не может быть присвоена другая переменная.
Тип ссылки должен совпадать с типом величины, на которую она ссылается.
Не разрешается определять указатели на ссылки, создавать массивы ссылок и ссылки на ссылки.
Ссылки применяются чаще всего в качестве параметров функций и типов возвращаемых функциями значений. Ссылки позволяют использовать в функциях переменные, передаваемые по адресу, без операции разадресации, что улучшает читаемость программы.
Ссылка, в отличие от указателя, не занимает дополнительного пространства в памяти и является просто другим именем величины. Операция над ссылкой приводит к изменению величины, на которую она ссылается.
35. Синтаксис, семантика и прагматика функций. Указатели функций. Примеры.
Функция — это именованная последовательность описаний и операторов, выполняющая какое-либо законченное действие. Функция может принимать параметры и возвращать значение.
Объявление функции (прототип, заголовок, сигнатура) задает ее имя, тип возвращаемого значения и список передаваемых параметров. Определение функции содержит, кроме объявления, тело функции, представляющее собой последовательность операторов и описаний в фигурных скобках:
[ класс ] тип имя ( [ список_параметров ])[throw ( исключения )]
{ тело функции }
В определении, в объявлении и при вызове одной и той же функции типы и порядок следования параметров должны совпадать. На имена параметров ограничений по соответствию не накладывается, поскольку функцию можно вызывать с различными аргументами, а в прототипах имена компилятором игнорируются (они служат только для улучшения читаемости программы).
Тип возвращаемого значения и типы параметров совместно определяют тип функции.
Механизм возврата из функции в вызвавшую ее функцию реализуется оператором
return [ выражение ] ;
Указатель на функцию содержит адрес в сегменте кода, по которому располагается исполняемый код функции, то есть адрес, по которому передается управление при вызове функции. Указатели на функции используются для косвенного вызова функции (не через ее имя, а через обращение к переменной, хранящей ее адрес), а также для передачи имени функции в другую функцию в качестве параметра. Указатель функции имеет тип «указатель функции, возвращающей значение заданного типа и имеющей аргументы заданного типа»:
тип (*имя) ( список_типов_аргументов );