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
 11/21 A kérdező kommentje:
Igazából az lett volna a kérdés, hogy egysuerű utasításokkal meg lehet-e csinálni. Nem függvénnyel.
2020. szept. 25. 14:03
 12/21 A kérdező kommentje:
Nyilván azért kérdeztem, mert gondolom a c++ úgy működik, hogy először visszaadja a megnöveletlen eredményt, aztán növel, nem pedig úgy, hogy növel aztán visszaadja a csökkentett eredményt.
2020. szept. 25. 14:05
 13/21 anonim ***** válasza:

Most a "c++" félre érthető. Most a c++ mint nyelv, vagy mint utasítás?


++X és a X++ nem egy nyelvben van jelen. Pl.: Java, C++, JavaScript és PHP-ban is működik. Pythonban nincs ilyen az ellenpélda kedvéért.


Meg nincs is értelme 1) növelni, majd visszzaadni a csökkentett eredményt. Akkor inkább így:


int a = c;

c++; // itt írhattam volna "++c"-t is vagy "c=1+c"-t is. Mivel nincs mibe beletenni, így fixen nő 1-el.

retirn a;

2020. szept. 25. 14:54
Hasznos számodra ez a válasz?
 14/21 A kérdező kommentje:

Eddig utasitasokrol volt csak szo, de nyilvan c-ben vagy c++-ban. De szamodra melyik mondatban felreertheto a dolog?


Nincs ertelme novelni majd visszaadni a csokkentett eredmenyt. Oke, pont arrol volt szo, hogy egy, a kerdesben hasonlo utasitassal meg lehet-e oldani, hogy ne noveld, es a csokkentett erteket add vissza, hanem add vissza a nem novelt erteket, es noveld.

2020. szept. 25. 18:05
 15/21 anonim ***** válasza:

Nem értem, miért nem értik a többiek, hogy mit írsz.

Szerintem tényleg be lehet helyettesíteni a (c=c+1,c-1) kifejezést.

A vessző sequence point, tehát a c-1 kiértékelésekor már meg lesz növelve a c. Pont ezt garantálja a c++ kifejezés is.


Inkább az a kérdés, hogy tud-e valaki olyan helyzetet, amikor a c++ működik, de a (c=c+1,c-1) nem.

2020. szept. 25. 18:57
Hasznos számodra ez a válasz?
 16/21 anonim ***** válasza:

"Nem értem, miért nem értik a többiek, hogy mit írsz."

Ha ez a 10-es válaszra akart reagálni, akkor nézd meg, épp a kérdező csodálkozott rá, hogy miért azt csinálja, amit. Senki nem mondta, hogy az nem helyettesíti, csak le lett írva, hogy mit csinál.


"Igazából az lett volna a kérdés, hogy egysuerű utasításokkal meg lehet-e csinálni. Nem függvénnyel"

Már leírták, hogy igen, értékadások sorozataként, amiket felírhatunk függvény törzseként és szekventált kifejezésként is, a lényeget tekintve most nincs nagy különbség.

2020. szept. 25. 21:09
Hasznos számodra ez a válasz?
 17/21 A kérdező kommentje:
Na akkor meg egyszer es utoljara. Tudom, hogy fuggvenyekkel meg lehet csinalni, nem nagy ordongosseg. A kerdes az volt, hogy ilyen utasitassal, mint ez: std::cout << (c=c+1,c-1); meg lehet-e csinalni, hogy c ertrke megnovelodjon de meg a nem megnovelt ertek irodjon ki vagy legalabbis azt adja vissza a kifejezes. Ez ilyen fejtoro, semmi mas. Nem vagyok fogyatekos, en is tudom, hogy std::cout << c; aztan c = c+1; de pont az benne a fejtoro, hogy egy osszetett utasitasbol szeretnem vagy inkabb szerettem volna megoldani, nem ket utasitasbol es nem is fuggvennyel. Miert? Poenbol.
2020. szept. 26. 01:07
 18/21 A kérdező kommentje:
Amugy en hol csodalkoztam ra es mire? :)
2020. szept. 26. 01:08
 19/21 anonim ***** válasza:

Szia!


Az ötleted tök jó, és igen, ugyanaz fog történni, mintha a (c = c + 1, c - 1) kifejezést írnád.

Aki nem érti, először nézze meg az operátorok kiértékelési precedenciáját:

[link]


Aki nem hiszi, itt tudja csekkolni:

[link]

2020. szept. 26. 21:39
Hasznos számodra ez a válasz?
 20/21 Kekcsi ***** válasza:
Azért a c-1 rész nem az igazi.
2020. szept. 27. 08:58
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!