Ц Предност и асоцијативност оператора: дефиниција и примери

У овом упутству ћете научити о предности и асоцијативности оператора помоћу примера.

Предност оператора

Приоритет оператора одређује који се оператор извршава први ако у изразу постоји више од једног оператора.

Размотримо пример:

 int x = 5 - 17* 6;

У Ц је приоритет *већи од -и =. Дакле, 17 * 6прво се оцењује. Тада се израз који -се укључује вреднује као приоритет од -већи од израза =.

Ево табеле приоритета оператора од вишег према нижем. О својству асоцијативности биће речи ускоро.

Табела првенства оператора и асоцијативности

Оператор Значење оператора Асоцијативност
()
()
->
.
Функционални позив
Референца елемента низа
Индиректни избор
члана Директни избор члана
С лева надесно
!
~
+
-
++
-
&
*
сизеоф
(тип)
Логичка негација Допунски битовни
(1)
додаци Унари плус
Унари минус
Инцремент
Децремент
Дереференце (Аддресс)
Референца показивача
Враћа величину објекта
Типецаст (конверзија)
Десна на лево
*
/
%
Премножи
подељени
остатак
С лева надесно
+
-
Бинарни плус (Сабирање)
Бинарни минус (одузимање)
С лева надесно
<<
>>
Лева смена
Десна смена
С лева надесно
<
<=
>
> =
Мање од
мање од или једнако
Веће од
веће или једнако
С лева надесно
==
! =
Једнако са
Не једнако са
С лева надесно
& У битовима И. С лева надесно
^ Битно ексклузивно ИЛИ С лева надесно
|. | У битовима ИЛИ С лева надесно
&& Логично И С лева надесно
|| Логично ИЛИ С лева надесно
?: Условни оператер Десна на лево
=
* =
/ =
% =
+ =
- =
& =
=
| =
<< =
>> =
Једноставан задатак
Додела производ
Додела количник
Додела остатак
Додела сума
Додела разлика
Додела битовима И
Додела битовима ЛОЛ
Додела битовима ИЛИ
Додела лево смена
Додела десно померање
Десна на лево
, Сепаратор израза С лева надесно

Асоцијативност оператора

Асоцијативност оператора одређује правац у коме се вреднује израз. На пример,

 b = a;

Овде је вредност а додељена б, а не обрнуто. То је зато што је асоцијативност =оператора здесна налево.

Такође, ако су присутна два оператора истог приоритета (приоритета), асоцијативност одређује правац у којем се извршавају.

Размотримо пример:

 1 == 2! = 3

Ево, оператери ==и !=имају исти приоритет. А, њихова асоцијативност је слева надесно. Дакле, 1 == 2прво се извршава.

Горњи израз је еквивалентан:

 (1 == 2)! = 3

Напомена: Ако израз има више оператора, можете користити заграде ()како бисте код учинили читљивијим.

Занимљиви Чланци...