# Operators

Highest precedence

 `(`expression`)` parentheses variable`++``++`variablevariable`--``--`variable increment the variable after using its valueincrement the variable and then use its new valuedecrement the variable after using its valuedecrement the variable and then use its new value `!`value`~`value`-`value`+`value`&`variable`*`variable`sizeof(`type/variable`)``(`type`)`expression logical (Boolean) NOT bitwise NOT (one's complement)unary minus (arithmetic negation)unary plusreturns the address of the variablereturns the value pointed to by the pointer variablereturns the number of bytes required for that typeforces the expression to be evaluated as type value` * `valuevalue` / `valuevalue` % `value multiplicationdivisionmodulus (the remainder from a division) value` + `valuevalue` - `value additionsubtraction value` << `countvalue` >> `count shift the value left by the number of bits in countshift the value right by the number of bits in count value` < `valuevalue` > `valuevalue` <= `valuevalue` >= `value less than (returns true or false)greater than (returns true or false)less than or equal (returns true or false)greater than or equal (returns true or false) value` == `valuevalue` != `value equal (returns true or false)not equal (returns true or false) value` & `value bitwise AND value` ^ `value bitwise XOR value` | `value bitwise OR value``` && ```value logical (Boolean) AND value` || `value logical (Boolean) OR exprA` ? `exprB``` : ```exprC if exprA is true, then evaluate exprB and return its value, else evaluate exprC and return its value variable` = `expressionvariable` `op`= `expression assign the value of the expression to the variable, and return that valueequivalent to variable` = `variable` `op` `expression, where op is one of ```* / % + - << >> & ^ |``` exprA`, `exprB evaluate exprA, then evaluate exprB and return its value

Lowest precedence