enum spectrum{red, orange, yellow, green, blue }; // объявляет имя нового типа
Этот оператор делает две вещи:
· объявляет имя нового типа – spectrum;
· устанавливает red, orange, yellow, green, blue как символические константы для целочисленных значений 0 – 4. это константы называются перечислителями. По умолчанию перечилителям присваиваются целые значения от 0 до 4 соответственно
можно использовать имя перечисления для объявления переменной типа этого перечисления: spectrum band;
Единственные допустимые значения, которые можно присваивать переменной типа перечисления без необходимости приведения типа – это те значения, которые использованы в определении этого перечисления.
band=blue;переменная ограничена только пятью допустимыми значениями.
2. enum {red, orange, yellow, green, blue }; // объявляет только константы
Над данными любого типа могут выполняться логические операции в порядке убывания приоритета от высшего к низшему.
! (не), &&(и), //(или),
<, <=, >, >=, = =, !=
операндами этих логических операций могут быть результаты выражений любого типа. Перед выполнением логических операций значение результатов выражений – операндов преобразуются в логические значения – истина 1 или ложь Ø. Все значения отличные от Ø, интерпретируются как истинные, а если равно Ø, то ложно.
. – Ограничитель имени поля структуры (Слева направо)
2.- Унарные операции – это операции, которые выполняются с одним операндом.
! – Логическое НЕ (Слева направо)
~ – Побитовое отрицание (Слева направо)
+,- – Унарный плюс, унарный минус (Слева направо)
++ – Инкремент (увеличение на единицу) (Слева направо)
-- – Декремент (уменьшение на единицу) (Слева направо)
& – Определение адреса (Слева направо)
* – Обращение по адресу (Слева направо)
3 - Бинарные операции (мультипликативные)
*, /,% – Умножение, деление, остаток от деления (Слева направо)
+, - – Сложение, вычитание (Слева направо)
<<, >> – Сдвиги (Слева направо)
<, <=, >, >= – Отношения (Слева направо)
==, != – Равенство, неравенство (Слева направо)
4 – Бинарные логические операции
& – Побитовая операция И (Слева направо)
^ – Побитовая операция исключающая ИЛИ (Слева направо)
| – Побитовая операция ИЛИ (Слева направо)
&& – Логическое И (умножение) (Слева направо)
|| – Логическое ИЛИ (сложение) (Слева направо)
?: – Условие в условных выражениях (Справа налево)
5.- Арифметические операции
= – Присваивания (Справа налево)
on= – Изменить и заменить«on» (Справа налево)
Результат логических операций.
Опер.1 опер.2 ! && //
Ø Ø 1 Ø Ø
Ø 1 1 Ø 1
1 Ø Ø Ø 1
1 1 Ø 1 1
Пример:
Целые числа: ί = 12 ĵ = 34 ĸ = 0
Вещественные числа: а=12,34 в = 0,0 с = 1,0
Логические операции
!а=0 !в=0 !с=0 логическое отрицание
ί&& ĵ=1 ί&& ĸ = Ø логическое
а&&в=0 в&&c=1 умножение
ί //ĵ=1 ί// ĸ =1 логическое
а//в=1 а//с=1 сложение
Объявление нового типа.
В С++ можно создавать новые имена типов данных. Для этого можно использовать директиву define или спецификатор typedef.
Typedef не создает нового типа данных, а заменяет имя определенного типа
данных (стандартного или пользовательского) на новое имя. Это
удобно для переноса программ из одной системы в другую.
Формат
typedef <старое_имя_типа_> <новое_имя_типа>;
Пример:
typedef float real;
(теперь будем использовать real вместо float )
typedef struct stud. STUD;
(определение имени типа стрктуры)
STUD {….}
(используем STUD вместо struct stud)
Формат директивы определения макроса.
#define имя_макро (список параметров) тело_макро
Имя макро задает имя макро определения, вместо которого в ходе препроцессорной обработки программы подставляется макро расширение. В простейшем варианте (при отсутствии необязательных параметров) вместо имени подставляется тело_ макро. Если в элементе имя_макро параметр присутствует (в обязательно круглых скобках), то вместо имени макроопределения подставляется тело_макро, в котором вместо параметра всюду подставляется аргумент обращения к макросу с указанным именем.