Kezdőoldal » Számítástechnika » Programozás » Ha egy függvény önmagát hívja...

Ha egy függvény önmagát hívja meg közvetetten, az hatással lehet a saját maga változójának értékére? Többi lent!

Figyelt kérdés

Java-ról van szó. Pl:


void fuggveny(){

boolean a = true;

....számítások, amit befolyásolják az "a" értékét.

fuggveny2();

}


void fuggveny2(){

.....

fuggveny();

}


A valóságban persze mindkét függvény bonyolultabb, és számításokat tartalmaz.

Tehát a konkrét kérdés az, hogy ha a fuggveny2() meghívódik az ábrázolt helyen, és az meghívja a fuggveny()-t, akkor ez a második fuggveny() hívódás hatással tud lenni a legelső fuggveny()-beli "a"-ra, vagy csak a saját maga béli "a" értékét tudja módosítani és nem okoz gubancot a dolog? Nem tudom az mennyit számít, hogy Java-ról van szó jelen esetben.



#Java #függvény #érték #változó #meghívja #módosíthatja
2020. máj. 26. 11:48
1 2
 1/20 anonim ***** válasza:

A primitív típusok a stacken tárolódnak, nem tudnak hatással lenni egymásra. Az összetettebb típusok a heapen, azok igen.

A rekurzív függvényhivogatástól előbb-utóbb azonban be fog telni a stack.

2020. máj. 26. 11:54
Hasznos számodra ez a válasz?
 2/20 anonim ***** válasza:
Egy függvény sohasem hívja önmagát. Másik függvényt hív, ami funkcionálisan azonos vele, ugyanaz a neve, de attól még másik. Minden változója is másik, hacsak nincs speciálisan beállítva, hogy adott memóriaterületen legyen, a függvény minden "testvére" számára megosztva és közösen kezelve.
2020. máj. 26. 11:57
Hasznos számodra ez a válasz?
 3/20 A kérdező kommentje:
Oké, értem. Én magam is így gondoltam, csak felbukkant egy olyan váratlan hiba, hogy kicsit elbizonytalanodtam. Köszönöm a gyors válaszokat! :)
2020. máj. 26. 12:00
 4/20 anonim ***** válasza:
47%
Egy függvény lokális változói minden függvényhívásnál újra teremtődnek (stack), tehát az 'a' változód értéke 'true' lesz huszadszorra, századszorra is és a végértéke nem függ a korábbi hívások végértékétől, hiszen azok az 'a'-k is ott pihennek a stacken amíg a függvényed vissza nem tér a hívóhoz (vagy amíg be nem telik a stack).
2020. máj. 26. 12:03
Hasznos számodra ez a válasz?
 5/20 A kérdező kommentje:
Amúgy csak én látom teljesen újnak a gyakorikerdesek oldalt, mert valami frissítést elcsesztem magamnál és nem úgy jeleníti meg a böngésző, vagy tényleg új skin-t kapott az egész?
2020. máj. 26. 12:03
 6/20 anonim ***** válasza:
100%
Új skint kapott az oldal, nem a te szemed ment tönkre.
2020. máj. 26. 12:04
Hasznos számodra ez a válasz?
 7/20 anonim ***** válasza:

A kettes mondjuk hülyeséget ír.

Egy függvény ha rekurzívan hívják, akkor bizony önmagát hívja meg, csak a változói tárolódnak el a stacken és a visszatérési cím.

2020. máj. 26. 12:06
Hasznos számodra ez a válasz?
 8/20 anonim ***** válasza:

"A kettes mondjuk hülyeséget ír."


Nyelvtan, babuci. Ha nem megy a magyar, hogy akarsz te C++ul?

2020. máj. 26. 12:11
Hasznos számodra ez a válasz?
 9/20 anonim ***** válasza:
53%

2,8:


"Egy függvény sohasem hívja önmagát. Másik függvényt hív, ami funkcionálisan azonos vele, ugyanaz a neve, de attól még másik."


Na, ez az ami hülyeség. Bármiféle nyelvtantól függetlenül.

Nincs semmiféle "másik" függvény, de még függvény név sincs.

0x52de3a memóriacím van és ettől kezdődő kód. Aztán annyi..

2020. máj. 26. 12:30
Hasznos számodra ez a válasz?
 10/20 A kérdező kommentje:
Ezek alapján akkor két pl for ciklus, vagy más ciklus egymásba ágyazva nem számít külön hatáskörűnek, ha jól értem, csak a függvényekre igaz ez.
2020. máj. 26. 13:14
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, 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!