C-operators: Types, functies en voorbeelden
Overzicht operatorcategorieën
- Rekundige (arithmetic)
- Relationele (relational)
- Logische (logical)
- Bitwise
- Toewijzing (assignment)
- Diverse (sizeof, ternary, adres, dereferentie)
Rekundige operators
| Op | Beschrijving | Voorbeeld (A=10, B=20) |
|---|---|---|
+ | Optellen | A + B = 30 |
- | Aftrekken | A - B = -10 |
* | Vermenigvuldigen | A * B = 200 |
/ | Delen (integer deling als beide int) | B / A = 2 |
% | Modulo (rest) | B % A = 0 |
++ | Increment | A++ = 11 |
-- | Decrement | A-- = 9 |
Relationele operators
| Op | Beschrijving | Voorbeeld (A=10, B=20) |
|---|---|---|
== | Gelijk aan | (A == B) is false |
!= | Niet gelijk | (A != B) is true |
> | Groter dan | (A > B) is false |
< | Kleiner dan | (A < B) is true |
>= | Groter of gelijk | (A >= B) is false |
<= | Kleiner of gelijk | (A <= B) is true |
Logische operators
| Op | Naam | Beschrijving | Voorbeeld (A=1, B=0) |
|---|---|---|---|
&& | Logical AND | Beide non-zero → true | (A && B) is false |
|| | Logical OR | Één non-zero → true | (A || B) is true |
! | Logical NOT | Keert logische waarde om | !(A && B) is true |
Bitwise operators
Werken op bitniveau. Waarden: A=60 (0011 1100), B=13 (0000 1101).
| Op | Naam | Resultaat | Binair |
|---|---|---|---|
& | AND | 12 | 0000 1100 |
| | OR | 61 | 0011 1101 |
^ | XOR | 49 | 0011 0001 |
~ | One's complement | -61 | 1100 0011 |
<< | Left shift | 240 | 1111 0000 |
>> | Right shift | 15 | 0000 1111 |
Toewijzingsoperators
| Op | Equivalent |
|---|---|
= | C = A + B |
+= | C = C + A |
-= | C = C - A |
*= | C = C * A |
/= | C = C / A |
%= | C = C % A |
<<= | C = C << 2 |
>>= | C = C >> 2 |
&= | C = C & 2 |
^= | C = C ^ 2 |
|= | C = C | 2 |
Diverse operators
| Op | Beschrijving | Voorbeeld |
|---|---|---|
sizeof() | Grootte in bytes | sizeof(int) → 4 |
& | Adres-van (address-of) | &a |
* | Dereferentie (pointer) | *ptr |
? : | Ternaire (conditionele) operator | max = (a>b) ? a : b |
, | Komma-operator (sequentieel evalueren) | a = (b=3, b+2) |
Operator-precedentie (van hoog naar laag)
| Categorie | Operators | Associativiteit |
|---|---|---|
| Postfix | () [] -> . ++ -- | Links→rechts |
| Unair | + - ! ~ ++ -- (type)* & sizeof | Rechts→links |
| Multiplicatief | * / % | Links→rechts |
| Additief | + - | Links→rechts |
| Shift | << >> | Links→rechts |
| Relationeel | < <= > >= | Links→rechts |
| Gelijkheid | == != | Links→rechts |
| Bitwise AND | & | Links→rechts |
| Bitwise XOR | ^ | Links→rechts |
| Bitwise OR | | | Links→rechts |
| Logical AND | && | Links→rechts |
| Logical OR | || | Links→rechts |
| Conditioneel | ?: | Rechts→links |
| Toewijzing | = += -= *= /= %= >>= <<= &= ^= |= | Rechts→links |
| Komma | , | Links→rechts |
Voorbeeld: x = 7 + 3 * 2 → x = 13 (niet 20), want * bindt sterker dan +.
C Taal
- C# Operators – Uitgebreide gids voor operators in C#
- C# Bitwise en Bit Shift Operators: Een Uitgebreide Gids
- C++ operators: complete gids met praktische voorbeelden
- C Programmeeroperatoren Beheersen: Een Uitgebreide Gids
- Bitwise Operatoren in C Beheersen: AND, OR, XOR, Shifts & Complement
- Uitgebreide Gids voor C++ Operators: Types, Gebruik en Best Practices
- Verilog operatoren: Essentiële rekenkundige & controle operatoren voor synthetise
- MATLAB Operatoren: Complete Gids voor Rekenkundige, Logische en Bitwise Operaties
- Python Operators onder de knie krijgen: Een uitgebreide gids
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java Essentials: Uitgebreide Gids voor Kern Operators