- •Операторы ветвления
- •If (выражение) оператор_1; [else оператор_2;]
- •Операторы цикла
- •Операторы передачи управления
- •Виды указателей
- •Инициализация указателей
- •Динамические массивы
- •Выделение памяти под двумерный массив
- •Строки, как частный случай массивов
- •Инициализация структур
- •Доступ к конкретному полю
- •Перечисления (enum)
- •Способы передачи параметров:
- •Функции с переменным числом параметров
- •Функция main()
- •Прямой, обратный и симметричный обходы дерева
- •Способы рекурсивного описания:
- •Схемы алгоритмов обходов:
- •Деревья выражений
- •Реализация деревьев
Динамические массивы
создают с помощью операции new, при этом необходимо указать тип и размерность, например:
int n=100;
float *p=new float [n];
…
delete [] p;
Динамические массивы нельзя при создании инициализировать, и они не обнуляются.
Альтернативный способ создания:
int n=100;
float *q=(float *) malloc (n * sizeof(float));
…
free(q);
Вопрос №11. Многомерные массивы. Строки, как частный случай массивов. Работа с массивами с помощью указателей.
Выделение памяти под двумерный массив
Строки, как частный случай массивов
Строка представляет собой массив символов, заканчивающийся нуль-символом. Нуль-символ– это символ с кодом, равным 0, что записывается в виде управляющей последовательности ‘\0’. По положению нуль-символа определяется фактическая длина строки.
Вопрос №12. Структуры. Инициализация структуры. Операция присваивания. Доступ к конкретному полю.
Структуры – это составной объект, в который входят элементы произвольных типов, за исключением функций.
Основное отличие структуры от массива, в том что в массивы входят однотипные элементы. Формат объявления структуры:
Элементы структуры называются полями структурыи могут иметь любой тип, кроме типа этой же структуры, но могут быть указателями на него.
Пример:
Инициализация структур
Значения элементов перечисляются в фигурных скобках в порядке их описания:
При инициализации массивов структур следует заключать в фигурные скобки каждый элемент массива:
Для переменных одного и того же структурного типа определена операция присваивания, при этом происходит поэлементное копирование. Структуру можно передавать в функцию и возвращать в качестве значения функции. Размер структуры не обязательно равен сумме размеров ее элементов, поскольку они могут быть выровнены по границам слова.
Доступ к конкретному полю
Доступ к полям структуры выполняется с помощью операций выбора .(точка) при обращении к полю через имя структуры и→при обращении через указатель, например:
Вопрос №13. Объединения. Перечисляемый тип. Поля битов. Псевдонимы существующих типов
Объединение– это частный случай структуры, все поля которой располагаются по одному и тому же адресу.
Длина объединения равна наибольшей из длин его полей. В каждый момент времени в переменной типа объединение хранится только одно значение.
Объединения применяют в тех случаях, когда известно, что больше одного поля одновременно не требуется.
Объединения часто используют в качестве поля структуры, при этом в структуру включают дополнительное поле, определяющее, какой именно элемент объединения используется в каждый момент. Имя объединения можно не указывать, что позволяет обращаться к его полям непосредственно:
Объединения применяются также для интерпретации одного и того же битового представления. Например, работа со структурой, содержащей битовые поля:
По сравнению со структурами на объединения налагаются некоторые ограничения:
объединение может инициализироваться только значением его первого элемента;
объединение не может содержать битовые поля;
объединение не может содержать виртуальные методы, конструкторы, деструкторы и операцию присваивания;
объединение не может входить в иерархию классов.