Pointer in C?

3 Antworten

Ja, du hast es richtig verstanden! Pointer verweisen immer auf eine bestimmte Adresse im Speicher, und wenn du die Verkettung der Elemente änderst, ohne die Elemente selbst zu ändern, bleibt die Adresse, auf die der Pointer zeigt, unverändert. Das bedeutet, dass der Pointer immer noch auf das Element zeigt, das sich an der ursprünglichen Adresse befindet, auch wenn es sich nun an einer anderen Stelle in der Verkettung befindet.

Ja. Ein Pointer ist lediglich eine Variable, die eine Adresse in dem Computer-Speicher speicher, an der sich ein bestimmtes Element befindet. Wenn Sie die Vor und Nach-Pointer der Elemente in der verketteten Liste umlenken ändern Sie lediglich die Art und Weise, wie die Elemente miteinander verbunden sind, aber nicht die tatsächlichen Elemente selbst oder die Adressen an denen sie gespeichert sind. Deshalbwerden alle Pointer, die auf das Element mit der Adresse 0x2 zeigen, nach dem Tausch des 2. und 3. Elements auf das 3. Element zeigen.


Kreyyy  09.12.2022, 16:41

Sonst noch Fragen?

ptr zeigt immernoch an die gleiche Stelle im Speicher, also das ehemalige Element 2, das nun das neue 3 ist.

Pointer referenzieren und da Du nicht die Daten zwischen 2 und 3 umkopierst, sondern neu fädelst, zeigt ptr danach immernoch auf das gleiche Listenelement, egal welche Position es nun innehat.