Van valami olvasmány amit elolvashatnék, hogy jobban megértsem a pointerek működését C-ben?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
10
Honnan tudja a fordító egy double tömbnél, hogy az adott index melyik elemet jelenti? És a ++ operátor egy pointeren, hogy mennyit is kell léptetni?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Bizonyos esetekben sehonnan. Ilyenkor kezdődnek a problémák.
A programozónak kell tudnia. Vagy legalább azt, hogy mire jó a sizeof.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
12
Egy double tömbnél tudja a fordító, hogy mekkorát kell léptetni. Meg egy intnél is tudja, és ez nem feltétlen ugyanakkora.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Bizonyos eseteket írtam, de ha már:
a fordító nem a pointerből fogja megtudni, hogy hol a next tömbelem, hanem annak a változónak vagy tömbnek a tipusából, amire a pointer mutat.
Sajnos "szak"-könyvekben is előfordul, hogy azt írják, a pointer felveszi annak a változónak a tipusát, amelyre mutat, de ez oltári nagy marhaság.
A változók értékei a memóriában, kivétel nélkül bináris számokként vannak reprezentálva. A felhasználás során válik ebből a bináris sorozatból részben vagy egészben előjel, szám, karakterisztika, mantissza, char, string, stb.
A pointerből nem válik semmi. Az marad ami volt, PC esetében egy 32 vagy 64 bites unsigned int.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
14
Na, akkor csak eljutottunk odáig, hogy a semmibe kötsz bele (mit hogy hívunk).
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
16
Veled valóban nincs miről beszélni, tekintve, hogy csak kötöszködni jársz ide. Nézd meg mit írtál az 5-ösben, ehhez képest az egyik fogalom nevébe tudtál csak belekötni. Nem érzed magad gáznak?
Amúgy tudtad, hogy lehet castolni pointer típusok között? Vagy szerinted ilyenkor egész pontosan mi castolódik?
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"Amúgy tudtad, hogy lehet castolni pointer típusok között?"
lol. Nincsenek pointer tipusok.
Essen már le, hogy a pointer az egy memóriacím és semmi több.
A type cast az adott címen lévő értékre vonatkozik, nem a rá mutató pointerre.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
"A pointer is defined as a derived data type that can store the address of other C variables or a memory location. We can access and manipulate the data stored in that memory location using pointers."
Csak hogy lezárjam ezt a vitát, mert nem segít a kérdezőnek. :D
Eszerint a definíció szerint a pointer egy származtatott típus. A pointer, mint tudjuk eltárolja a memóriacímet. Lehet vitatkozni, hogy a pointer maga egy típus-e vagy csak tárolja a mutatott érték típusát, de a kérdés szempontjából felesleges.
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!