Выражения и операции

Обработка данных и вычисление значений осуществляется выражениями. Выражение состоит из операций. В таблице приведены все операции языка Си в порядке убывания приоритета.

ТАБЛИЦА 5. ОПЕРАЦИИ ЯЗЫКА Си.

операция описание пример приоритет, ассоциативность
Первичные операции
() Вызов функции fgetc (pcx) 16, слева направо
[ ] Индекс массива chr [128] 16, слева направо
. Элемент структуры coord.x 16, слева направо
® Элемент структуры coord®x 16, слева направо
Унарные операции
++ Увеличение на 1 i++ 15, слева направо
- - Уменьшение на 1 i- - 15, слева направо
Sizeof Размер в байтах sizeof (b1) 14, справа налево
(mun) Преобразование типа (float)(x) 14, справа налево
~ Побитовое НЕ ~a 14, справа налево
! Логическое НЕ !EOF 14, справа налево
Унитарный минус –i 14, справа налево
& Адрес &x 14, справа налево
* Содержимое адреса *x 14, справа налево
Бинарные операции мультипликативные
* Умножение 16*16 13,слева направо
/ Деление x/8 13,слева направо
% Остаток деления x%8 13,слева направо
Аддитивные
+ Сложение x+b 12, слева направо
Вычитание x–b 12, слева направо
Побитовый сдвиг
<< Сдвиг влево 0x80<<i 11,слева направо
>> Сдвиг вправо 0x80>>i 11,слева направо
Операции отклонения
< Меньше, чем i<a 10, слева направо
> Больше, чем i>a 10, слева направо
Равенства
= = Равно x= =b 9, слева направо
!= Не равно x!=b 9, слева направо
Битовые
& Побитовое И   8, слева направо
^ Побитовое исключающее ИЛИ a^b 7, слева направо
! Побитовое или x!b 6, слева направо
Логические
&& Логическое И x>1&&x<3 5, слева направо
|| Логическое ИЛИ x<0||x= =0 4, слева направо
Условный
? При условии a>b?1:0 3, справа налево
Присваивания
= Присваивание a=4 2, справа налево
*= Присваивание произведения x*=10 2, справа налево
/= Частного x/=10 2, справа налево
операция описание пример приоритет, ассоциативность
%= Остатка деления x%=10 2, справа налево
+= Суммы x+=10 2, справа налево
–= Разности x–=10 2, справа налево
<<= Левого сдвига x<<=10 2, справа налево
>>= Правого сдвига x>>=10 2, справа налево
&= Присвоение И i&=j 2, справа налево
^= Присвоение исключающего ИЛИ i^=j 2, справа налево
!= Присвоение ИЛИ i!=j 2, справа налево
, Запятая x=2,x=y 1, слева направо
           

Дадим пояснение побитовым операциям. Если имеется следующее побитовое значение 10011110, то сдвиг влево на четыре бита дает результат 11100000, а сдвиг вправо на четыре бита приведет к значению 00001001.

Битовое И означает, что если имеется два значения 10011110 и 11111000, то побитовое умножение их приведет к результату: 10011100. Исключающее ИЛИ этих значений определяет: 01100010. В этом случае единицы ставятся там, где биты не совпадают, а нули – где совпадают.

Результатом побитового ИЛИ будет: 11111110. Единицы ставятся в тех местах, где хотя бы один из битов равен единице. В этом случае справедлива арифметика 1+1=1, 0+1=1.

Обратим внимание, что в случае операции i++ вначале используется старое значение i, а потом выполняется его приращение.

Унарный оператор! преобразует ненулевой операнд в 0, а нуль в 1.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: