Вопрос 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]