Kezdőoldal » Számítástechnika » Programozás » Van valami olvasmány amit...

Van valami olvasmány amit elolvashatnék, hogy jobban megértsem a pointerek működését C-ben?

Figyelt kérdés

tegnapelőtt 09:34
1 2 3
 21/25 anonim ***** válasza:
8%

"A számítógép memóriájának rekeszei, bájtjai meg vannak számozva. A processzor, amikor szeretne egy változóban tárolt értéket kiolvasni, vagy szeretné módosítani azt, akkor a változó helyét jelző memóriacím (memory address) segítségével hivatkozza meg. Innen tudja a memória, hogy melyik tárolt bájtot kell előszednie, vagy hogy hova tegye a megjegyzendő adatot.


Amikor pointereket használunk a programunkban, tulajdonképp ezekkel a címekkel dolgozunk. A pointer belső ábrázolása egyszerűen a memóriacím."

tegnap 11:24
Hasznos számodra ez a válasz?
 22/25 anonim ***** válasza:
83%
Vajon mennyit kell ahhoz inni évtizedeken át, hogy valaki ennyire agyhalott legyen?
tegnap 11:33
Hasznos számodra ez a válasz?
 23/25 anonim ***** válasza:
86%

Esettanulmány a pointer castoláshoz (#18-ra direkt válasz), ez szerintem a kérdezőnek is hasznos lehet (és amúgy javaslom az ilyen jellegű kísérletezést, főleg, ha valami nem világos):


#include <stdio.h>


int main(int argc, int argv[]) {


// Pointer cast

double a = 4.3;

double* p = &a;

int* pint = (int*)p;

double* pp = (double*)pint;

printf("Pointer cast: %f\n", *pp);


// Value cast

int aint = (int)a;

double aa = (double)aint;

printf("Value cast: %f\n", aa);


return 0;

}


Jó gyakorlat megtippelni, hogy mit fog kiírni a program, de azért itt hagyom:

Pointer cast: 4.300000

Value cast: 4.000000


Mi erre a magyarázat? Az első esetben a pointert castoltuk - NEM a mögötte levő adatot -, míg a második esetben az adatot castoltuk. Ami ugye double -> int lépésnél információt veszít, amit az utána következő int -> double nyilván nem tud visszaállítani. Ez nem lép fel a pointer castolásnál.

tegnap 13:09
Hasznos számodra ez a válasz?
 24/25 anonim válasza:
25%

Sorszámot castolni. Na, az nem semmi.

Tombol az idiotizmus. :(

tegnap 20:54
Hasznos számodra ez a válasz?
 25/25 anonim ***** válasza:

24

Nem. Azt a változót castolni, ami tárolja a sorszámot (pointer).

Amúgy a pointerek castolása elég gyakori C-ben (főleg, pl. void*-ról arra, ami neked kell)

tegnap 21:11
Hasznos számodra ez a válasz?
1 2 3

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!