2010-05-26 3 views
21

Perché il dereferenziamento è chiamato dereferenziazione?Perché il dereferenziamento di un puntatore è chiamato dereferenziazione?

Sto solo imparando i puntatori correttamente e mi piacerebbe sapere perché il dereferenziamento è chiamato così. Mi ha confuso perché sembra che tu stia rimuovendo un riferimento, piuttosto che passare attraverso il puntatore alla destinazione.

Qualcuno può spiegare perché si chiama questo?

Per me qualcosa di simile alla destinazione o al valore_dati avrebbe più senso.

+3

La destinazione e il valore puntato sono nomi ... stai chiedendo del verbo nel titolo. :-) –

+0

Sono d'accordo: non ha mai senso per me neanche perché si chiami così. Lo preferirei se fosse chiamato "seguire" o "somesuch". –

+0

Penso che tu ti stia riferendo alla giusta direzione che stavo cercando. La parola dereferenziare un termine puramente CS? Senza usare quella parola nella mia vita a parte questo, ho provato ad assumere ciò che importa, che è dove ho sbagliato, penso! È una parola usata solo per questa situazione? Ci sono altri esempi in cui useresti questo termine? –

risposta

35

Un puntatore riferisce ad un oggetto. Ergo, noi dereference il puntatore (o, ottieni il referente del puntatore) per far puntare l'oggetto.

Il prefisso de- molto probabilmente deriva dal preposizione latina che significa da; Suppongo che potresti pensare a dereferenziamento come "ottenere il referente (o oggetto) dal riferimento".

+0

Puoi dare nessun altro esempio della parola usata al di fuori di CS? –

+1

@ottico: No; Penso che sia solo un gergo tecnico. –

+0

I puntatori mostrano semantica di riferimento. – Puppy

9

Il dereferenziamento significa togliere il riferimento e darti ciò a cui si stava effettivamente riferendo.

Un puntatore a something significa in realtà che la variabile del puntatore contiene un indirizzo di memoria di something. Ma il puntatore può anche essere pensato come riferimento a something.

+0

È un termine puramente cs, o puoi pensare ad un'altra situazione in cui useresti la stessa parola? –

+0

C'è migliaia di termini CS che non vengono utilizzati nel "mondo reale" – Adam

+0

Suonava come ha fatto un po 'a che fare con fare un puntatore nullo, piuttosto che trovare qualcosa al fine di esso. Penso di averlo pensato perché pensavo che suonasse come una parola che potrebbe esistere nel mondo reale. –