Вопрос 20. Основы языка С++. Операции(логические, отношения). Приоритет операций.

Вопрос 19. Основы языка С++. Операции(логические, отношения). Приоритет операций.

Вопрос 18. Основы языка С++. Операции (арифметические).

Define PI 3.14159

Директива #define

Вопрос 17. Основы языка С++. Константы. Управляющие последовательности.

Константы – это фиксированные значения, которые не могут изменяться во время работы программы. Константы могут быть любых типов.

Константы можно определять с помощью директивы препроцессора #define, не­смотря на то, что такой способ не рекомендуется употреблять в С++. Директива #define не делает различий между числами и символьными строками. Например, если в начале вашей программы указана строчка

Тип целочисленной константы определяется автоматически по ее значению. При необходимости тип константы можно указать принудительно с помощью суффиксов.

156U - unsigned int

156L – long int

156UL – unsigned long int

156 – десятичная константа

0156 – восьмеричная константа

0x156 – шестнадцатеричная константа

Управляющие последовательностью:

1) \a – сигнал

2) \b – пробел

3) \f – перевод страницы

4) \n – перевод в начало следующей строки

5) \r – возврат каретки

6) \t – табуляция

7) \\ - обратная косая \

8) \’ – одинарные кавычки

9) \” – двойные кавычки

10) \xdd – 16ричный код символа

В языке С++ используются четыре основные бинарные арифметические операции: сложения, вычитания, умножения и деления, обознача­емые соответственно +,-,*, /. Эти операции применимы как к целым типам данных, так и к вещественным и их использование практически ничем не отличается.

Существует арифметическая операция, которая применяется только к целым числам типа char, short, int и long. Эта операция называется операцией ос­татка от деления и обозначается знаком процента %.

 

Также к арифметическим относятся унарные операции – инкремента и декремента (префиксная и постфиксная формы).

Операция отношения сравнивает между собой два значения. Значения могут быть как стандартных типов языка С++, например char, int или float, так и типов, определяемых пользователем.

Сравнение устанавливает одно из трех возможных отношений между переменными: равенство, больше или меньше. Результатом сравнения является значение истина или ложь.

В С++ существуют 3 логические операции: &&, ||, !

Тип операций Операции Приоритет
Унарные !, ++, --, +, - Высший
Арифметические Мультипликативные *, / , %  
  Аддитивные +, -  
Отношения Неравенства <,>,<=,=> Равенства ==, !=  
Логические И && ИЛИ ||  
Условная ?:  
Присваивания =, +=, -=, *=, /=, %= Низший

Переменная типа int может умножаться на переменную типа float, а результат присваивается переменной типа double. Компиляция программы будет происходить без ошибок, поскольку компиляторы допускают возможность перемножения (и выполнения других арифметических операций) с операндами разных типов.

Иерархия типов данных (с высшего): long double > Double > float > long > Int > Short > char

Арифметические операции, подобные + и *, действуют следующим образом: если их операнды имеют различные типы, то операнд с более «низким» типом будет преобразован к более «высокому» типу. Подобные преобразования типов данных происходят неявно.

Явные преобразования типов, в отличие от неявных, совершаются самим программистом. Явные преобразования необходимы в тех случаях, когда компилятор не может безошибочно преобразовать типы автоматически. В С++ существует несколько различных операций приведения типов, однако здесь мы ограничимся рассмотрением лишь одной из них. Явные приведения типов в С++ ведут себя весьма требовательно. Вот пример оператора, осуществляющего преобразование типа int к типу char [aCharVar = (char)anIntVar]