Zeiger???

Neue Frage »

Auf diesen Beitrag antworten »
X.Gotix Zeiger???

Ich programmiere ich C++ und weiß nichts über Zeiger und wozu sie gut sind.

Wer kann mir den Begriff des Zeigers näherbringen?

Ist Informatik abstrakter als höhere Mathematik?
 
Auf diesen Beitrag antworten »
pi_mal_daumen

Mathe und Infor vergleichen? Da vergleichst du dann aber wirklich Äpfel mit Birnen!
Kommt drauf an, wie man Abstrakt sieht und welchen Teil des jeweiligen Bereich man betrachtet. Logik-Kalküle sind denke ich abstrakter als Grenzwert-Berechnung... Aber Topologien sind abstrakter als Laufzeitanalyse von Algorithmen. Von daher kann man da nichts drüber sagen...

Zum Thema Zeiger: Nen bissle selber anlesen wäre nicht verkehrt. Insgesamt gesagt sind Zeiger nichts anderes als die Position auf einen Speicherbereich.
Wenn, vereinfacht gesagt, in der SPeicherzelle 0001 ein Zeiger gespeichert ist, zeigt dieser auf einen anderen Speicherbereich. Z.b. könnte dort etwas wie 0123 drinstehen, sodass man, wenn man den Zeiger dereferenziert, nicht mehr die 0123 betrachtet, sondern das, was in Speicherzelle mit dem Index 0123 drinsteht.

http://de.wikipedia.org/wiki/Zeiger_%28Informatik%29

Wenn ich jetzt z.b. eine Funktion habe, die ein gewisses "Objekt" bearbeitet, dann kann ich dieses Objekt z.b. per Copy übergeben. Dann wird das Objekt kopiert und in der FUnktion wird mit dieser Kopie weitergearbeitet. Das kann bei großen Objekten natürlich sehr rechen- und speicherintensiv werden.
Stattdessen kann man der Funktion auch ein Zeiger auf das bereits existierende Objekt geben, sodass die Funktion dann mit diesem Objekt weiterarbeitet, es also nicht kopiert werden muss.
Auf diesen Beitrag antworten »
Minipet Zeiger

Versuch es doch mal mit folgendem script, das sollte Zeiger etwas verständlich machen.

---------------------------------------------------------------------------
-----------------------------

#include <iostream>
using namespace std;

int main () {
int a; //int 4bytes
a=5;
cout << "Der Wert von a ist:" << a ;
cout << "\nDie Adresse von a ist:" << &a << " \n"<< endl;
// cout << "\nDer Wert auf den a zeigt:" << *a ;
int* b = &a;
cout << "\nDer Wert von b ist:" << b ;
cout << "\nDie Adresse von b ist " << &b;
cout << "\nDer Wert auf den b zeigt:" << *b ;
int** c = &b;
cout << "\n\nDer Wert von c ist:" << c ;
cout << "\nDie Adresse von c ist " << &c;
cout << "\nDer Wert auf den c zeigt:" << *c ;
cout << "\nDer Wert auf den *c zeigt:" << **c ;
int*** d = &c;
cout << "\n\nDer Wert von d ist:" << d ;
cout << "\nDie Adresse von d ist " << &d;
cout << "\nDer Wert auf den *d zeigt:" << **d ;
cout << "\nDer Wert auf den **d zeigt:" << ***d ;
int**** e = &d;
cout << "\n\nDer Wert von e ist:" << e ;
cout << "\nDie Adresse von e ist " << &e;
cout << "\nDer Wert auf den *e zeigt:" << ***e ;
cout << "\nDer Wert auf den **e zeigt:" << ****e ;

return 0;
}

---------------------------------------------------------------------------
---------------------------

viel Spaß beim ausprobieren
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »