Справочная система C guide



Содержание


( ) Вызов функции (с 28) Слева направо

[ ] Выделение элемента массива (с. 27)

Выделение элемента структуры или объеди нения (с.27)

—> Выделение элемента структуры (объедине ния) , адресуемой (го) указателем (с. 27)

! Логическое отрицание (с. 24) Справа налево

~ Побитовое отрицание (с. 25) - ,,+Изменение знака (с. 19) i

++ Увеличение на единицу (с. 19)

-- Уменьшение на единицу (с. 20) & Определение адреса (с. 26)

* Обращение по адресу (с. 26) (тип) Преобразование типа (с. 28) sizeof Определение размера в байтах (с. 28)

/ Деление (с. 19) % Деление по модулю (с. 19)
 

- Вычитание (с. 19)

< < Сдвиг влево (с. 26) Слева направо > > Сдвиг вправо (с. 25)
< Меньше, чем (с. 23) Слева направо <= Меньше или равно (с. 24) > Больше, чем (с. 24) >= Больше или равно (с. 24)
== Равно (с. 23) Слева направо != Неравно (с. 23)
& Побитовая операция И (с. 26) Слева направо
Побитовая операция исключающее ИЛИ (с. 26) Слева направо
 

&& Логическая операция Ц (с. 25) Слева направо
11 Логическая операция ИЛИ (с. 24) Слева направо
= Присваивание (с. 21 -22) Справа налево “= ”= &= *= 1=
, Операция запятая (с. 28) Слева направо

4.13. Порядок обработки операндов

Для четырех операций (&& II ?: ,) гарантируется, что левый операнд будет обрабатываться первым. Для остальных операций поря-) док обработки может быть разным на разных компиляторах. 'Это означает, что если программа, отлаженная на некоторой ЭВМ, зависит от негарантированного порядка обработки операндов, то на другой ЭВМ с другим компилятором она может выполняться неправильно. Пример

v = (х = 5) + (++х);

Если порядок обработки операндов в операции + слева направо, то переменная v получит значение 11 (5 + 6) и значение х будет равно 6.

Если порядок справа налево, значение v зависит от значения х, которое эта переменная имела до выполнения выражения; например, если значение х было равно 0, то значение v станет равным б (5 + 1) и значение х станет равным 5.




Содержание  Назад  Вперед