Kezdőoldal » Számítástechnika » Programozás » C (++) stílusú nyelvbe mi...

C (++) stílusú nyelvbe mi értelme van a mutatóknak?

Figyelt kérdés
Mi haszna van?
2018. jan. 26. 16:48
 1/7 anonim ***** válasza:
[link] (lett volna 2 másodperc kiguglizni, de sebaj).
2018. jan. 26. 17:01
Hasznos számodra ez a válasz?
 2/7 A kérdező kommentje:
#1 itt a syntaxisa van leírva, nem azt kérdeztem.De ha nehéz volt megértened, megkérdezem másképp...Miért érdemes használni mutatókat?
2018. jan. 26. 17:04
 3/7 anonim ***** válasza:
100%

Csak a mutatókról, és azok használatáról lehetne egy külön könyvet írni. A mutatók egyik legalapvetőbb lényege, hogy anélkül kezelhetsz nagyméretű struktúrákat, hogy az egész struktúrát másolgatnod kéne. Ahelyett, hogy egy függvénynek megadnál egy gigászi méretű állományt, amit lemásol magának lokális változónak, szimplán megadhatsz egy mutatót, ami csupán a memóriacímet tárolja, ahol azt megtalálod. És így a mutatón keresztül elérheted ugyanazt az (erdeti) állományt, fölösleges memóriapocsékolás nélkül. A referencia lényegében ugyanerre jó, azzal a különbséggel, hogy a pointernek módosítani tudod az értékét (vagyis, hogy milyen memóriacímre mutasson), míg a referencia mindig ugyanarra a változóra fog mutatni. Ez a lehetőség szintén a kezedbe ad további eszközöket, pl egy láncolt listás szerkezet megvalósíthatatlan lenne enélkül.


A pointerek jelentősége elég sokrétű, memóriakezelés, program absztrakció, mindenhol megvan a maga szerepe. Egy érdekes hasonlat lehet mondjuk a felhasználóneved egy oldalon. Hasonlóféleképpen működik, mint egy pointer a programozásban, ahelyett, hogy a teljes profilodat, minden adattal elküldenéd mindenkinek, akit érdekel, szimplán megadhatod nekik a felhasználóneved, ami alapján meg tudják az emberek keresni a profilodat, amin a további adataid vannak. A felhasználóneved rámutat a profilodra. A pointerek is hasonló elven működnek, és a hasnosságuk is jobban látszik talán ezen keresztül.

2018. jan. 26. 17:09
Hasznos számodra ez a válasz?
 4/7 anonim ***** válasza:
100%

Gondolj arra, hogy mondjuk egy függvénynek dolgoznia kell valamilyen adaton, mondjuk egy tömbön vagy struktúrán. Hogy adod meg neki az adatokat? Ahogy fentebb írták, nem másolhatod be mindig a stack-be az egészet, mint paramétert, mert kikönyököl a memóriából, időigényes (igen, ez is szempont lehet), vissza is kell írni valahogy, stb.


Egyébként a proci (vagy assembly) úton-útfélen memóriacímekkel dolgozik, a C pedig elég gépközeli nyelv. Általában akkor is mutatókat használsz, amikor egy magasabb szintű nyelvben ezt észre sem veszed. Sőt, C-ben sem mindig, pl. egy tömb (akár string) változó is valójában pointer, csak nincs annyira elrejtve a programozó elől, mint mondjuk a Java vagy Python nyelvben.

2018. jan. 27. 08:40
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:
A string-re visszatérve: Mondjuk a memóriában van egy ilyened, hogy "Hello\0". Hogy máshogy tudnál vele bármit is kezdeni, mint mutatókkal? Például megszámolni a karaktereket, vagy kiírni konzolra?
2018. jan. 27. 08:44
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:
35%

Ne emeld ki.

Kösz.

2018. jan. 29. 20:44
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
51%
Most le leszek pontozva, de te megértetted a C lényegét? És érted mi az, hogy pointer (mutató)? Kb. ez az alapja az egésznek (sőt igazán az egyik nagy újítása pont ez volt amikor megalkották először a C-t, hogy a pointer kezelés letisztult benne, és egységes lett).
2018. jan. 29. 21:18
Hasznos számodra ez a válasz?

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!