Mire jók a pointerek? Miért hasznosak? (C++)
Annyi, de annyi helyre le van már írva.
Muszáj gyártani a szemetet?
"Ok, I will explain with a simple example.
So, if some person asks you where do you stay, will you answer with a copy of your home or with an address of your home ?
Now, which is easy?
Similarly, with respect to technical point of view, you have a 1 MB object. When you want to use it for anything, is it good to operate directly on existing object using pointer to it or creating a copy of it and using it?
Hope this helps."
Googleön első találat. Lusta voltam megírni a saját válaszom, de jól összefoglalja a "mért hasznosak" részt.
"Ramutatnak címekre, oké, de ez miért jó nekünk?"
Az adatok a memóriában vannak tárolva. Ezeket (alacsony szinten, pl. C-ben) kétféle módon lehet elérni:
- előre definiált szimbólummal (változónévvel), vagy
- pointerrel.
A változónév praktikus, de nem mindig lehet használni. Például ha van egy dinamikus listád, akkor egy elem csak pointerrel tud a szomszédjaira mutatni. Vagy ha gráfot vagy fát állítasz össze futás közben, akkor is pointerek valósítják meg a csomópontok kapcsolatait. De tömb elemeit is relatív pointerrel érjük el, a háttérben a pointer aritmetika valósítja meg.
Alacsony szinten a processzor pl. csak pointerekkel ér el bármit is a memóriában. Ott már a változónevek is "fel vannak oldva", le vannak cserélve pointerekre. Nagyon pongyola megfogalmazásban a változónév is egy pointer, csak nevet adtunk neki. Tuképpen még a lokális változók is a stack pointerhez képesti relatív címekké fordulnak.
Magasabb szintű nyelvek általában elrejtik a pointereket, hogy ne kelljen foglalkozni velük, de attól még jó tudni, hogy a háttérben erősen pointer alapú a lefordított kód.
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!