A continuació tenim un resum breu de les operacions disponibles. Per a informació completa, podeu consultar qualsevol manual de llenguatge C; per exemple aquest.
| Operador | Utilització | Exemple | Comentaris |
| + | Suma | c = a + b | |
| - | Resta | c = a - b | |
| * | Multiplicació | c = a * b | |
| / | Divisió | c = a / b | |
| % | Residu | c = a % b | Només per a variables enteres Equival a c = a - b * enter(a / b) |
Permeten fer operacions lògiques a nivell de bit (cada bit per separat) amb variables enteres.
| Operador | Utilització | Exemple | Comentaris |
| & | Funció I bit a bit | m = m & 0b00001111 | Aquest exemple posa a zero els quatre bits més significatius de m |
| | | Funció O bit a bit | m = m | 0b00001111 | Aquest exemple posa a u els quatre bits menys significatius de m |
| ^ | Funció O exclusiva bit a bit | m = m ^ 0b00001111 | Aquest exemple inverteix els quatre bits menys significatius de m |
| ~ | Inversió de bits | n = ~m | Canvia els 0 per 1 i els 1 per 0 |
| << | Rotació de bits a l'esquerra | n = m << 1 | Els bits que surten per l'esquerra es perden Per la dreta entren zeros |
| >> | Rotació de bits a la dreta | n = m >> 1 | Els bits que surten per la dreta es perden Per l'esquerra entren zeros |
La instrucció << desplaça els bits a l'esquerra el número de posicions indicat. Per exemple:
Valor = Valor << 2;
Desplaça els bits dos llocs a l'esquerra. El problema és que els dos bits de més a l'esquerra es perden (queden a zero). Si la variable que fem servir és de 8 bits i la fem rodar sis posicions cap a l'altre costat hauria de donar també el mateix resultat però ara serien sis bits els que es perdrien. Però entre les dues rotacions acabem tenint tots els bits al seu lloc, només cal fer una funció o (or) entre elles.

Valor = (Valor << 2) | (Valor >> 6); // Desplacem els bits
| Operador | Utilització | Exemple | Comentaris |
| = | Assignació | b = 2 | Posa a la variable de l'esquerra el resultat de l'expressió de la dreta |
| a = a + 3 | |||
| k = m = n = 4 * a | Equival a n = 4 * a; m = n; k = m | ||
| += | Autosuma | a += 2 | Equival a a = a + 2 |
| b += x - 3 | Equival a b = b + (x - 3) | ||
| -= | Autoresta | a -= 2 | Equival a a = a - 2 |
| *= | Automultiplicació | a *= 2 | Equival a a = a * 2 |
| /= | Autodivisió | a /= 2 | Equival a a = a / 2 |
| &= | Auto-I | a &= 0b00001010 | Equival a a = a & 0b00001010 |
| |= | Auto-O | a |= 0b00001010 | Equival a a = a | 0b00001010 |
| ^= | Auto-O-exclusiva | a ^= 0b00001010 | Equival a a = a ^ 0b00001010 |
| Operador | Utilització | Exemple | Comentaris |
| ++ | Incrementa en 1 | a++ | Equival a a = a + 1 |
| b = a++ | Equival a b = a; a = a + 1 | ||
| b = ++a | Equival a a = a + 1; b = a | ||
| -- | Decrementa en 1 | a-- | Equival a a = a - 1 |
| b = a-- | Equival a b = a; a = a - 1 | ||
| b = --a | Equival a a = a - 1; b = a |
El seu resultat és booleà, pot ser 1 (cert) o 0 (fals).
| Operador | Utilització | Exemple | Comentaris |
| == | Igualtat | a == b | El resultat és 1 si a i b són iguals |
| != | Desigualtat | a != b | El resultat és 1 si a i b són diferents |
| < | Més petit que | a < b | El resultat és 1 si a és més petit que b |
| <= | Més petit o igual que | a <= b | El resultat és 1 si a no és més gran que b |
| > | Més gran que | a > b | El resultat és 1 si a és més gran que b |
| >= | Més gran o igual que | a >= b | El resultat és 1 si a no és més petit que b |
Permeten fer operacions lògiques amb variables o expressions booleanes. Es pot aplicar també a altres variables, llavors es considera fals el valor 0 i cert qualsevol altre valor.
| Operador | Utilització | Exemple | Comentaris |
| && | Funció I | a && b | dona 1 si a i b són certes, en cas contrari dona 0 |
| || | Funció O | a || b | dona 0 si a i b són falses, en cas contrari dona 1 |
| ! | Funció NO | !a | dona 0 si a és certa i 1 si és falsa |
| ~ | ~a |
| Operador | Utilització | Exemple | Comentaris |
| & | Adreça de la variable | b = &a | b passa a contenir l'adreça de la variable a |
| * | Adreçament indirecte | c = *b | c passa a contenir el valor de la variable que està emmagatzemada a l'adreça que està a b Si b = &d, c passa a ser igual a d |
| Operador | Utilització | Exemple | Comentaris |
| - | Canvi de signe | a = - 3 | |
| b = - c | |||
| + | No canvi de signe | a = + 3 | En realitat, no fa res |
| b = + c | |||
| sizeof( ) | Mida en bytes | m = sizeof( b ) | Si b és char, m valdrà 1 |
| , | Separador | Avalua totes les expressions però el resultat correspon a la darrera | |
| a = b++, c + 2 | Equival a b = b + 1; a = c + 2 | ||
| ? : | Operador condicional | Vegeu l'apartat sentències |
Per poder operar dues variables, cal que les dues siguin del mateix tipus. Si no és així, el valor de la de tipus menor serà escalat al rang de la de tipus més gran. Per exemple si m és int i n és long, quan s'avalui l'expressió:
c = m + n;
el valor de m serà convertit a long en el moment de sumar.
Fixem-nos ara en el següent tros de programa en el que m i n són int i c és float:
m = 4; n = 3; c = m / n;
El valor de c serà 1.0 ja que com m i n són int la divisió es fa en int i el resultat és 1 (els decimals es perden). Després el resultat es converteix a float per guardar-loa a c però els decimals ja no es poden recuperar. podem forçar a que el programa canviï el tipus; per exemple en aquest cas:
m = 4; n = 3; c = (float) m / (float) n;
Els valors de m i n són convertits a float en el moment de fer l'operació i, per tant, el valor de c sí serà l'esperat. El mateix obtindríem, per exemple, amb el següent:
m = 4; n = 3; c = (float) m / n;
ja que com un dels dos elements del quocient és float, l'altra es converteix al mateix nivell en fer l'operació.
Quan en una expressió hi ha diversos operadors, cal tenir clar en quin ordre seran avaluats. En C hi ha onze nivells que els podem trobar a la taula següent. Com el parèntesi sempre és el primer a avaluar-se, en cas de dubte podem fer-lo servir per desfer l'ambigüitat.
Quan hi dos operadors del mateix nivell, en alguns casos s'avalua el que està situat més a l'esquerra de l'expressió i en altres el que està més a la dreta, segons s'indica a la darrera columna de la taula.
| Prioritat | Operadors | Ordre en el mateix nivell |
| 1 | ( ) [ ] -> . | Primer els de l'esquerra |
| 2 | ++ -- - (canvi signe) ! ~ + (no canvi de signe) sizeof( ) * (adreçament indirecte) & | Primer els de la dreta |
| 3 | * (multiplicació) / % | Primer els de l'esquerra |
| 4 | + (suma) - (resta) | Primer els de l'esquerra |
| 5 | < <= > >= | Primer els de l'esquerra |
| 6 | == != | Primer els de l'esquerra |
| 7 | && | Primer els de l'esquerra |
| 8 | || | Primer els de l'esquerra |
| 9 | ?: | Primer els de la dreta |
| 10 | = += -= *= /= | Primer els de la dreta |
| 11 | , | Primer els de l'esquerra |
Alguns exemples:
4 * a + g equival a (4 * a) + g b - c + d equival a (b - c) + d

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.