Unterschied zwischen Zeiger und Array

Anonim

Zeiger vs Array

Ein Zeiger ist ein Datentyp, der eine Referenz auf einen Speicherort eine Zeigervariable speichert eine Adresse eines Speicherplatzes, in dem einige Daten gespeichert sind) Arrays sind die am häufigsten verwendete Datenstruktur zum Speichern einer Sammlung von Elementen Die meisten Programmiersprachen stellen Methoden bereit, um Arrays und Zugriffselemente in den Arrays einfach zu deklarieren.

Was ist ein Zeiger?

Ein Zeiger ist ein Datentyp, der eine Adresse eines Speicherplatzes speichert, in dem einige Daten gespeichert sind. Verweis auf einen Speicherort Der Zugriff auf die Daten, die in dem Speicherort gespeichert sind, auf den der Zeiger referenziert, wird Dereferenzierung genannt. wiederholt wiederholende Operationen wie das Durchfahren von Bäumen / Strings, Tabellensuchen usw. unter Verwendung von Zeigern würde die Leistung verbessern. Dies ist darauf zurückzuführen, dass Dereferenzierungs- und Kopierzeiger billiger sind als tatsächlich das Kopieren und Zugreifen auf die von den Zeigern angezeigten Daten. Ein Nullzeiger ist ein Zeiger, der auf nichts verweist. In Java würde der Zugriff auf einen Nullzeiger eine Ausnahme namens NullPointerException generieren.

Was ist ein Array?

In Abbildung 1 ist ein Codestück dargestellt, das normalerweise zum Deklarieren und Zuweisen von Werten zu einem Array verwendet wird. Abbildung 2 zeigt, wie ein Array im Speicher aussehen würde.

int-Werte [5];

Werte [0] = 100;

Werte [1] = 101;

Werte [2] = 102;

Werte [3] = 103;

Werte [4] = 104;

103

104

Index: 0 1 2 Abbildung 1: Code zum Deklarieren und Zuweisen von Werten zu einem Array < 3 4
Abbildung 2: Im Speicher abgelegte Arrays Übergeordneter Code definiert ein Array, das 5 ganze Zahlen speichern kann und auf die über die Indizes 0 bis 4 zugegriffen wird. Eine wichtige Eigenschaft eines Arrays besteht darin, das gesamte Array wird als ein einzelner Speicherblock zugewiesen und jedes Element erhält seinen eigenen Platz im Array. Sobald ein Array definiert ist, ist seine Größe festgelegt. Wenn Sie sich zum Zeitpunkt der Kompilierung nicht sicher sind, wie groß das Array sein soll, müssen Sie ein Array mit genügend großer Größe definieren, um auf der sicheren Seite zu sein. In den meisten Fällen werden wir jedoch weniger Elemente verwenden, als wir zugewiesen haben. So ist eine beträchtliche Menge an Speicher tatsächlich verschwendet. Auf der anderen Seite würde das Programm abstürzen, wenn das "groß genug Array" nicht wirklich groß genug ist. Was ist der Unterschied zwischen Zeigern und Arrays? Ein Zeiger ist ein Datentyp, der eine Adresse eines Speicherplatzes speichert, in dem einige Daten gespeichert werden, während Arrays die am häufigsten verwendete Datenstruktur zum Speichern einer Sammlung von Elementen sind. In der C-Programmiersprache erfolgt die Array-Indizierung unter Verwendung von Zeigerarithmetik (dh das i-te Element des Arrays x wäre gleich * (x + i)).Daher kann in C ein Satz von Zeigern, die auf eine Reihe von Speicherstellen zeigen, die aufeinanderfolgend sind, als ein Array angesehen werden. Außerdem besteht ein Unterschied darin, wie die Größe des Operators auf Zeiger und Arrays wirkt. Bei Anwendung auf ein Array gibt sizeof operator die gesamte Größe des Arrays zurück, wohingegen bei Anwendung auf einen Zeiger nur die Größe des Zeigers zurückgegeben wird.