C Kifejezések
Ismétlés
Operandus1 operátor Operandus2 Az operandusok a C nyelv azon elemei, amelyeken az operátorok fejtik ki hatásukat. Operandus1 operátor Operandus2 a = 5 a + b a += c Azokat a kifejezéseket, amelyek nem igényelnek további kiértékelést, elsődleges (primary) kifejezésnek nevezzük. Pl: Konstatns érték, azonosító, sztring, függvényhívás, tömb-index kifejezés.
Egyoperandusú (unary) operátorok Az operátorokat több szempont alapján lehet csoportosítani. A csoportosítást elvégezhetjük az operandusok száma szerint. Az egyoperandusú (unary) operátorok esetén a kifejezés általános alakja: op operandus vagy operandus op Az első esetben, amikor az operátor (op) megelőzi az operandust előrevetett (prefixes), míg a második esetben hátravetett (postfixes) alakról beszélünk. (1.c) -a a++ sizeof(a) (float)a &a --a
Operandus1 op Operandus2 Kétoperandusú (binary) kifejezések Az operátorok többsége két operandussal rendelkezik, ezek a kétoperandusú kifejezések. Operandus1 op Operandus2 a+b a!=b a+=b a/b a%b Ebben a csoportban a hagyományos aritmetikai műveletek mellett megtalálhatók a bitműveletek elvégzésére szolgáló operátorok is. a<<2 a&1111 a|b
Feltétel ? Ha igaz : ha hamis Háromoperandusú operátor A C nyelvben az egyetlen háromoperandusú operátor a feltételes operátor. ( ? : ) Feltétel ? Ha igaz : ha hamis a < 0 ? -a : a Ha az a változó értéke kisebb mint nulla akkor a kifejezés eredménye (-a), ha nagyobb mint nulla akkor pedig a értéke lesz. A program kimenete: 5
Operátorok
Operátorok
Operátorok
Operátorok Összehasonlító és logikai operátorok Értékadó operátorok Léptető operátorok
Precedencia és asszociativitás Annak érdekében, hogy bonyolultabb kifejezéseket is helyesen tudjunk használni, meg kell ismerkednünk az elsőbbségi (precedencia) szabályokkal, amelyek meghatározzák a kifejezésekben szereplő műveletek kiértékelési sorrendjét.
Precedencia és asszociativitás
Precedencia és asszociativitás
Típuskonverziók A kifejezések kiértékelése sarán előfordulhat, hogy valamely kétoperandusú operátor különböző típusú operandusokkal rendelkezik. Ahhoz azonban, hogy a művelet elvégezhető legyen, a fordítónak azonos típusúra kell alakítania a két operandust, vagyis típuskonverziót kell végrehajtania. A típuskonverziók egy része automatikusan, a programozó beavatkozása nélkül megy végbe, a c nyelv definíciójában rögzített szabályok alapján. Ezeket a konverziókat implicit vagy automatikus konverzióknak nevezzük. A típuskonverziót azonban a programozó is előírhat a C programban, a típuskonverziós operator felhasználásával. Ez az egyoperandusú operátor a konvertálandó kifejezés előtt zárójelek között tartalmazza a típusnevet. (típusnév) kifejezés Mivel ebben az esetben a típusnév megjelenik a konverziós előírásban, explicit típuskonverzióról beszélünk.
Típuskonverziók