Kezdőoldal » Számítástechnika » Programozás » Ha a ++c az c = c + 1, akkor...

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

Figyelt kérdés

#C++ #++c
2020. szept. 24. 10:17
1 2 3
 1/21 anonim ***** válasza:
94%

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.

2020. szept. 24. 10:22
Hasznos számodra ez a válasz?
 2/21 A kérdező kommentje:
ezt en is tudom, de a kerdes az volt, hogy egyszeru kifejezeskent fel lehetne-e irni mindkettot
2020. szept. 24. 10:55
 3/21 tabaki ***** válasza:
88%
Elképesztő dolgok jutnak néha az eszetekbe.
2020. szept. 24. 10:56
Hasznos számodra ez a válasz?
 4/21 anonim ***** válasza:
Nem lehet.
2020. szept. 24. 11:00
Hasznos számodra ez a válasz?
 5/21 tabaki ***** válasza:

"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.

2020. szept. 24. 11:03
Hasznos számodra ez a válasz?
 6/21 A kérdező kommentje:
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
2020. szept. 24. 12:03
 7/21 anonim ***** válasza:
91%

Utasítások sorozataként lehet. Pl:

a = x++;

>> a = x;

>> x = x + 1;


a = ++x;

>> x = x + 1;

>> a = x;

2020. szept. 24. 13:54
Hasznos számodra ez a válasz?
 8/21 anonim ***** válasza:

"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.

2020. szept. 24. 14:05
Hasznos számodra ez a válasz?
 9/21 A kérdező kommentje:
Az en logikam szerint c++ az nagyon nem c+1, legfeljebb c = c + 1 lehetne, de az meg pont a ++c. Erdekes, ha azt irom, hogy int c = 0; std::cout << c = c + 1; akkor a mar megnovelt ertek irodik ki, ha pedig azt, hogy int c = 0; std::cout << c = c + 1, c - 1; akkor pedig meg a megnoveletlen, mikozben a c erteke egyel nagyobb lesz.
2020. szept. 25. 12:21
 10/21 anonim ***** válasza:

"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

}

2020. szept. 25. 12:35
Hasznos számodra ez a válasz?
1 2 3

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!