Выбрать главу

 21 % 6;  /* результат 3  */  21 / 6;  /* результат 3  */

 21 % 7;  /* результат 0  */  21 / 7;  /* результат 3  */

-21 % -8; /* результат -5 */ -21 / -8; /* результат 2  */

 21 % -5; /* результат 1  */  21 / -5; /* результат -4 */

Упражнения раздела 4.2

Упражнение 4.4. Расставьте скобки в следующем выражении так, чтобы продемонстрировать порядок его обработки. Проверьте свой ответ, откомпилировав и отобразив результат выражения без круглых скобок.

12 / 3 * 4 + 5 * 15 + 24 % 4 / 2

Упражнение 4.5. Определите результат следующих выражений:

(а) -30 * 3 + 21 / 5 (b) -30 + 3 * 21 / 5

(с) 30 / 3 * 21 % 5  (d) -30 / 3 * 21 % 4

Упражнение 4.6. Напишите выражение, чтобы определить, является ли значение типа int четным или нечетным.

Упражнение 4.7. Что значит переполнение? Представьте три выражения, приводящих к переполнению.

4.3. Логические операторы и операторы отношения

Операторам отношения передают операторы арифметического типа или типа указателя, а логическим операторам — операнды любого типа, допускающего преобразование в тип bool. Все они возвращают значение типа bool. Арифметические операнды и указатели со значением нуль рассматриваются как значение false, а все другие как значение true. Операнды для этих операторов являются r-значениями, а результат — r-значение.

Таблица 4.2. Логические операторы и операторы отношения

Порядок Оператор Действие Применение
Правосторонний ! Логическое NOT !выражение
Левосторонний < Меньше выражение < выражение
Левосторонний <= Меньше или равно выражение <= выражение
Левосторонний > Больше выражение > выражение
Левосторонний >= Больше или равно выражение >= выражение
Левосторонний == Равно выражение == выражение
Левосторонний != Не равно выражение != выражение
Левосторонний && Логическое AND выражение && выражение
Левосторонний || Логическое OR выражение || выражение
Операторы логического AND и OR

Общим результатом оператора логического AND (&&) является true, если и только если оба его операнда рассматриваются как true. Оператор логического OR (||) возвращает значение true, если любой из его операндов рассматривается как true.