Wozu braucht man Zeiger, bitte in klaren simplen Worten erklären
-
Hallo,
programmiere nicht sonderliche lange mit C, wie man merkt, ich verstehe wie ich mit Zeigern programmiere, trotzdem, wozu brauche ich Zeiger, um auf eine Bestimmte variable zu zeigen, na und, kann ich die niche einfach direkt aufrufen oder den wert direkt angeben, ich seh nicht den sinn von Zeigern, bitte erklär mir das mal einer, aber in simplen Worten.
Wäre echt nett,
danke
-
Erstens biste hier im Falschen Forumsteil
Dann zu deiner Frage:
- du kannst mit Zeigern Speicherplatz reservieren
- du kannst mehrere Werte von einer Funktion "zurueckgeben" (das zurueckgeben nicht wörtlich nehmen)
- du kannst von einer Funktion aus Werte einer Variablen einer anderen Funktion verändernusw.
-
Hallo,
sorry, falsches forum, tut mir leid, schaue beim nächsten mal genauer hin.
Trotzdem ist mir das mit den Zeigern immer noch nicht 100 prozentig klar.
hmmTrotzdem danke.
-
Zum Beispiel:
Wenn du extrem viele große Zahlen sortieren möchtest, nimmst du Zeiger. Somit werden nicht die Zahlen selbst hin und her kopiert, sondern nur die Zeiger. Dies bringt extrem viel mehr performance und ist in vielen Fällen unerlässlich, oder man kann mit C++ nicht umgehen.
MfG
-
Zeiger sind Variablen, die Adressen speichern können. Der Zeiger an sich zeigt in der Regel auf einen Speicherbereich. Das kann alles mögliche sein: Funktionen, Objekte, komplexe Strukturen oder eben nur einfache Grundvariablen ala double, int etc.
Stell dir nun mal vor, du hast eine Millionen Zahlen vom Typ Integer und musst diese der Größe nach sortieren. Vom Sortieren verstehst du allerdings nichts. Jemand hat dir eine Funktion geschrieben, der dir den Stress einer selbstprogrammierten Sortierung abnimmt. Diese rufst du nun auf.
Die Sortierfunktion benötigt jetzt nur noch die Startadresse deiner eine Millionen Zahlen. Diese übergibst du der Sortierfunktion. (In der Regel sind das 1 * 4 Byte)
Gebe es keine Zeiger müsstest du 1 Millionen Zahlen kopieren und der Funktion Sortierung zuweisen. 1 Million * 4 Byte (int belegt min. 4 Byte im Speicher)
Was ist schneller 4 Megabyte zu übergeben oder nur 4 Byte?
-
Wenn du etwas Zeit (und Geduld) mitbringst, solltest du dir mal GPC's Magazin-Artikel über Zeiger durchlesen.
-
Dieser Thread wurde von Moderator/in CMatt aus dem Forum C# und .NET in das Forum ANSI C verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
z.b. wenn du eine funktion 100mal aufrufst mit foo(struct xyz A)
dann kopierst die struktur 100mal wenn du aber mittels zeiger die struktur übergibst arbeitest du direkt mit der struktur statt mit der kopie