2010-05-26 6 views
21

Warum wird Dereferenzierung Dereferenzierung genannt?Warum wird der Dereferenzierung eines Zeigers namens Dereferenzierung?

Ich lerne gerade Zeiger richtig, und ich würde gerne wissen, warum Dereferenzierung das heißt. Es verwirrte mich, da es sich anhört, als würde man eine Referenz entfernen, anstatt über den Zeiger zum Ziel zu gehen.

Kann jemand erklären, warum es so genannt wird?

Für mich würde etwas wie Ziel oder pointed_to_value mehr Sinn machen.

+3

Ziel und Punktwert sind Nomen ... Sie fragen nach dem Verb im Titel. :-) –

+0

Dem stimme ich zu - es hat mir nie einen Sinn gemacht, warum es so heißt. Ich würde es vorziehen, wenn es "Folgen" oder so genannt würde. –

+0

Ich denke, Sie beziehen sich auf die richtige Richtung, nach der ich gesucht habe. Ist das Wort Dereferenzierung ein reiner CS-Ausdruck? Ohne dieses Wort in meinem Leben zu benutzen, abgesehen davon, habe ich versucht, anzunehmen, was es bedeutet, wo ich falsch gelaufen bin, denke ich! Wird dieses Wort nur für diese Situation verwendet? Gibt es andere Beispiele, wo Sie diesen Begriff verwenden würden? –

Antwort

35

Ein Zeiger verweist auf ein Objekt. Ergo, wir Dereferenz der Zeiger (oder, erhalten Sie den Referenten des Zeigers), um das Objekt pointed zu bekommen.

Der de- Präfix höchstwahrscheinlich aus der lateinischen Präposition kommt von bedeutet; Ich nehme an, man könnte sich Dereferenz als Bedeutung vorstellen, "um den Referenten (oder das Objekt) aus der Referenz zu erhalten."

+0

Können Sie geben irgendein anderes Beispiel des Wortes, das außerhalb von CS verwendet wird? –

+1

@optician: Nein; Ich denke, es ist nur Fachjargon. –

+0

Zeiger zeigen Referenzsemantik. – Puppy

9

Dereferenzierung bedeutet, dass Sie die Referenz wegnehmen und Ihnen das geben, worauf sie sich bezogen hat. Ein Zeiger auf something bedeutet wirklich, dass Ihre Zeigervariable eine Speicheradresse von something enthält. Man kann sich den Zeiger aber auch als Referenz auf something vorstellen.

+0

Ist es ein rein cs Begriff, oder können Sie an eine andere Situation denken, in der Sie das gleiche Wort verwenden würden? –

+0

Es gibt Tausende von CS-Begriffen, die nicht in der "echten Welt" verwendet werden. – Adam

+0

Es hörte sich an, als ob es etwas damit zu tun hätte, einen Zeiger auf Null zu setzen, anstatt etwas am Ende zu finden. Ich denke, dass ich das dachte, weil ich dachte, es klang wie ein Wort, das in der realen Welt existieren könnte. –