C prognyelv pointerek?
double szamok1[5] = { 4.5, 9.2, 7.1, -6.9, 8 };
double szamok2[5] = { 9.3, 78, -7, 0.01, 4.6 };
double *p; /* pointer típusú változó */
p = &szamok1[3];
printf("%g\n", *p); /* -6.9 */
*p = 5.7;
printf("%lg \n", &szamok1[3]);
printf("%lg \n", *p);
Kiírt értékek: -6.9, -6.9, 5.7. Viszont a második printfnél miért nem 5.7?
Rájöttél már?
Nem szívatni akarlak, csak ez kifejezetten az a dolog,
amire ha nem jössz rá, akkor az életed innentől csak
szívás lesz. Erre rá kell érezni :)
* pointer, & a cím. Továbbá létezik közvetett értékadás is, a pointeren keresztül.
Na akkor megsúgom: Ugye itt kb a pointert akarnád kiíratni
(ott a &), de ez így, ezzel a printf-el nem fog menni.
Egyszerűen beragadt az előző érték, mert a függvény
ugyanazt a memóriaterületet használná, és nem tudta
feltölteni adattal, ezért átugorta (előző érték maradt).
Próbáld ki, hogy más számnál is azt fogod visszakapni.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!