Ha a ++c az c = c + 1, akkor a c++ az c = c + 1, c - 1?





Nope.
Vegyünk egy függvényt ami kiírja az eredményt. Nevezzük print()-nek. //-be írom az outputot.
var x = 1;
print(x++) // 1
print(x) // 2
var y = 1
print(++y) // 2
print(y) //2
Tehát ha utána van, 1. kiolvassa az aktuális értéket, amit tovább ad, majd UTÁNA növeli. Ha elötte van akkor 1. növel, majd úgy adja át.










"egyszeru kifejezeskent fel lehetne-e irni mindkettot"
Nyilván nem. A kiolvasás sorrendje csak valami összefüggésben értelmezhető, önmagában mindkét forma növeli c-t, és annyi.





Utasítások sorozataként lehet. Pl:
a = x++;
>> a = x;
>> x = x + 1;
a = ++x;
>> x = x + 1;
>> a = x;





"jó, akkor rosszul fogalmaztam, nem egyszerű kifejezésként, hanem úgy mint ahogy a kérdésben meg van adva, vagyis egyszerű utasításként, nem függvényként"
A te logikád szerint, ha c++ = c + 1, akkor ++c is = c + 1. Az operátor nem a műveleten változtat, hanem a művelet kiértékelésének sorrendjén. Nyilván ennek legtöbbször a függvényeknél vagy értékadásnál van értelme, ezért lehet leginkább ebben a kontextusban találkozni vele.





"c = 0; std::cout << c = c + 1, c - 1; akkor pedig meg a megnoveletlen, mikozben a c erteke egyel nagyobb lesz"
Jesszumpepi! :)
A C-ben az értékadás és a vesszővel elválasztott kifejezések is mind érvényes kifejezések.
(c = c + 1)
(c = c + 1, c - 1)
A másodiknál a kifejezés értéke a vesszővel elválasztott részek közül az utolsó lesz.
Szóval először megnövelted c-t, utána visszaadtad az eggyel csökkenetett értékét. Valami ilyesmi, függvényes példával:
int f() {
c = c + 1;
return c - 1; // ettől nem változik meg c értéke
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!