×
Traktatov.net » Язык программирования C [Лекции и упражнения, 6-е изд.] » Читать онлайн
Страница 519 из 557 Настройки

(2 + а) == а ложно, имеет значение 0.

Операции присваивания

Язык С имеет одну базовую и несколько объединенных операций присваивания. Базовая форма записывается как одиночный знак равенства:

= присваивает значение справа 1-значению слева.

Каждая из следующих операций присваивания обновляет 1-значение, находящееся слева, значением, указанным справа, с использованием указанной операции (правый операнд обозначается как П-О , а левый — как Л-О):

+= добавляет величину П-О к переменной Л-О и помещает результат в переменную Л-О.

-= вычитает величину П-О из переменной Л-О и помещает результат в переменную Л-О.

*= умножает переменную Л-О на величину П-О и помещает результат в переменную Л-О.

/= делит переменную Л-О на величину П-О и помещает результат в переменную Л-О.

%= получает остаток от деления величины Л-О на величину П-О и помещает результат в переменную Л-О.

&= присваивает Л-О & П-О величине Л-О и помещает результат в переменную Л-О.

I = присваивает Л-О | П-О величине Л-О и помещает результат в переменную Л-О.



Пример

rabbits *= 1.6; дает тот же результат, что и rabbits = rabbits * 1.6;

Логические операции

Логические операции обычно принимают в качестве операндов выражения отношений. Операция ! принимает один операнд, остальные — два: левый и правый.

&&            И

||                 ИЛИ

!                  НЕ

Логические выражения

выражение 1 && выражение2 истинно тогда и только тогда, когда оба выражения истинны.

выражение 1 || выражение2 истинно, когда любое из выражений либо оба

сразу истинны.

! выражение                                      истинно, когда выражение ложно, и наоборот.

Порядок оценки логических выражений

Логические выражения оцениваются слева направо. Оценка прекращается, как только становится ясно, что выражение ложно.

Примеры

6>2&&3==3                             истинно.

! ( 6 > 2 & & 3 == 3 ) ложно.

х ! = 0 && 2 0/х < 5                второе выражение оценивается, только если х отлич

но от 0.

Условная операция

Операция ? : принимает три операнда, каждый из которых является выражением. Они располагаются следующим образом:

выражение1 ? выражение? : выражениеЗ

Значение полного выражения равно значению выражение2, если выражение1 истинно, и значению выражениеЗ в противном случае.


Примеры


836 Приложение Б

( 3 > 5 ) ? 1 : 2                        имеет значение 2.

( а > b ) ? а : b                        имеет значение, большее среди а и b.

Операции, связанные с указателями

& операция взятия адреса. Когда за ней следует имя переменной, & дает ее адрес.

* операция разыменования. Когда за ней следует указатель, * дает значение, сохраненное по указанному адресу.

Примеры

Здесь Snurce — это адрес переменной nurce: nurse = 22;

ptr = &nurse; /* указатель на nurse */ val = *ptr;

Общий результат заключается в присваивании переменной val значения 22.

Операции со знаком

- знак минуса меняет знак операнда на противоположный.

+ знак плюса оставляет знак операнда без изменений.

Операции структур и объединений

Структуры и объединения используют операции для идентификации их индивидуальных членов. Операция членства применяется со структурами и объединениями, а операция косвенного членства — с указателями на структуры и объединения.