160 likes | 298 Views
C. Kifejezések. Ismétlés. Operandus. Az operandusok a C nyelv azon elemei, amelyeken az operátorok fejtik ki hatásukat. Operandus1 operátor Operandus2 a = 5 a + b
E N D
C Kifejezések
Operandus 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
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
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 Ö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.
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.