C Operator Precedentie & Associativiteit Begrijpen: Duidelijke Gids
Precedentie van operators
De precedentie van operators bepaalt welke operator eerst wordt uitgevoerd als er meer dan één operator in een expressie is.
Laten we een voorbeeld overwegen:
int x = 5 - 17* 6;
In C is de precedentie van * hoger dan - en =. Daarom wordt 17 * 6 eerst geëvalueerd. Vervolgens wordt de expressie met - geëvalueerd omdat de precedentie van - hoger is dan die van =.
Hier is een tabel van operators precedentie van hoger naar lager. De eigenschap van associativiteit zal kort besproken worden.
Operators Precedentie & Associativiteit Tabel
| Operator | Betekenis van operator | Associativiteit |
|---|---|---|
| () [] -> . |
Functionele aanroep Array element referentie Indirecte lidselectie Directe lidselectie |
Links naar rechts |
| ! ~ + - ++ -- & * sizeof (type) |
Logische negatie Bitwise(1 's) complement Unaire plus Unaire min Increment Decrement Dereferentie (Adres) Pointer referentie Retourneert de grootte van een object Typecast (conversie) |
Rechts naar links |
| * / % |
Vermenigvuldigen Delen Rest |
Links naar rechts |
| + - |
Binaire plus(Optelling) Binaire min(Aftrekking) |
Links naar rechts |
| << >> |
Linksshift Rechtshift |
Links naar rechts |
| < <= > >= |
Kleiner dan Kleiner dan of gelijk Groter dan Groter dan of gelijk |
Links naar rechts |
| == != |
Gelijk aan Niet gelijk aan |
Links naar rechts |
| & | Bitwise EN | Links naar rechts |
| ^ | Bitwise exclusieve OF | Links naar rechts |
| | | Bitwise OF | Links naar rechts |
| && | Logische EN | Links naar rechts |
| || | Logische OF | Links naar rechts |
| ?: | Conditionele Operator | Rechts naar links |
| = *= /= %= += -= &= ^= |= <<= >>= |
Eenvoudige toewijzing Product toewijzen Quotiënt toewijzen Rest toewijzen Som toewijzen Verschil toewijzen Bitwise EN toewijzen Bitwise XOR toewijzen Bitwise OF toewijzen Linksshift toewijzen Rechtshift toewijzen |
Rechts naar links |
| , | Scheidingsteken van expressies | Links naar rechts |
Associativiteit van Operators
De associativiteit van operators bepaalt de richting waarin een expressie wordt geëvalueerd. Bijvoorbeeld,
b = a;
Hier wordt de waarde van a aan b toegewezen, en niet andersom. Omdat de associativiteit van de = operator van rechts naar links is.
Ook, als twee operators dezelfde precedentie (prioriteit) hebben, bepaalt associativiteit de richting waarin ze uitgevoerd worden.
Laten we een voorbeeld overwegen:
1 == 2 != 3
Hier hebben operators == en != dezelfde precedentie. En hun associativiteit is van links naar rechts. Daarom wordt 1 == 2 eerst uitgevoerd.
De bovenstaande expressie is equivalent aan:
(1 == 2) != 3
Let op: Als een statement meerdere operators heeft, kunt u haakjes () gebruiken om de code leesbaarder te maken.
Inhoudsopgave
C Taal
- C++ Strings Beheersen: C-Stijl vs std::string
- C-functies: Structuur, declaratie, aanroep en argumenten
- C# Reflectie onder de knie: runtime-typeontdekking en dynamische programmering
- C++ comments: best practices voor leesbare, onderhoudbare code
- Beheersing van C's free() functie: Praktische gids & voorbeeld
- C Standaardbibliotheek-functies onder de knie krijgen: Een praktische gids
- Constructor overloading in C#: flexibele klassen ontwerpen
- C++ Constructor Initialisatielijst: Waarom en Hoe u Het Gebruikt
- C# Encapsulatie Beheersen: Code Beschermen en Design Verbeteren
- C Header-bestanden begrijpen: Typen, gebruik en best practices
- User-Defined Functies in C Beheersen: Een Stap-voor-Stap Gids