
- •1.1. Алфавит языка
- •1.2. Идентификаторы
- •1.3. Ключевые слова
- •1.4. Знаки операций
- •1.5. Константы
- •1.6. Комментарии
- •2.1. Стадии прохождения программы
- •3.1. Концепция типа данных
- •3.2. Основные типы данных
- •3.3. Переменные
- •4. Операции и выражения
- •4.1. Выражение и его интерпретация
- •4.2. Арифметические операции
- •4.3. Операции отношения
- •4.4. Логические операции
- •4.5. Операции с разрядами
- •4.6. Операции сдвига
- •4.7. Операция условия
- •4.8. Операция присваивания
- •4.9. Операция sizeof
- •4.10. Преобразование типов
- •4.11. Порядок выполнения операций
- •5. Форматный ввод и вывод данных
- •5.1. Форматный вывод: функция printf()
- •5.2. Форматный ввод: функция scanf()
- •Содержание
4.3. Операции отношения
С++ поддерживает следующие операции отношения:
> – больше; дает результат 1, если операнд слева от знака больше операнда справа; в противном случае дает 0;
< – меньше; дает результат 1, если операнд слева меньше операнда справа; в противном случае дает 0;
= = – равно; дает результат 1, если операнд слева от знака равен операнду справа; в противном случае дает 0;
>= – больше или равно; дает результат 1, если операнд слева от знака больше или равен операнду справа; в противном случае дает 0;
<= – меньше или равно; дает результат 1, если операнд слева от знака меньше или равен операнду справа; в противном случае дает 0;
!= – не равно; дает результат 1, если операнд слева от знака не равен операнду справа; в противном случае дает значение 0.
Операнды могут быть арифметического типа или указателями. Операции сравнения на равенство и неравенство имеют меньший приоритет, чем остальные операции сравнения.
При сравнении float (вещественных величин) лучше пользоваться только операциями < и >, т.к. ошибки округления могут привести к тому, что числа окажутся неравными, хотя по логике они должны быть равны (например, 3*1/3 равно 1,0, но 3*1/3 в вещественном формате будет представлена как 0,999999…, и произведение не будет равно 1).
4.4. Логические операции
Логические операции и операции отношения используются при формировании логических выражений, имеющих только два значения: 1, если логическое выражение ИСТИННО; 0, если логическое выражение ЛОЖНО. Логические выражения наиболее часто используют вместе с операторами управления потоком вычислений – операторами циклов и ветвлений. С++ поддерживает следующие логические операции:
&& – логическое И; дает результат 1 (ИСТИНА), если все операнды имеют значение 1 (ИСТИНА); в противном случае дает значение 0 (ЛОЖЬ);
|| – логическое ИЛИ; дает результат 1 (ИСТИНА), если хотя бы один из операндов имеет значение 1 (ИСТИНА); в противном случае дает значение 0 (ЛОЖЬ);
! – логическое НЕ; дает результат 1 (ИСТИНА), если операнд справа от знака имеет значение 0 (ЛОЖЬ); в противном случае дает значение 1 (ИСТИНА).
Возможные результаты выполнения логических операций представлены в таблице 4.
Таблица 4. Логические операции
A |
B |
A |
A||B |
!A |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
Операнды логических выражений вычисляются слева направо. Если значения первого операнда достаточно, чтобы определить результат операции, то второй операнд не вычисляется. Логические операции не вызывают стандартных арифметических преобразований. Они оценивают каждый операнд с точки зрения его эквивалентности нулю. Результатом логической операции является 0 или 1, тип результата int.