Problem mit Pointer
-
Ich wünsche einen guten Mittag!
Ich bin nun am lesen von C++-Primer und es kommt als Erstes Pointer. Nun habe ich mal etwas versucht. Ich gehe davon aus, dass es wie eine Verlinkdung dient.
Leider bekomme ich beim Kompilieren immer nur Fehler...
Hier mein Code:#include <iostream> using namespace std; int main() { int zahl1 = 1; int zahl2* = zahl1; cout << zahl1 << endl << zahl2 << endl; zahl1 = 2; cout << zahl1 << endl << zahl2 << endl; return 0; }Ich habe es (so in etwa) aus dem Buch ageschrieben, aber es kommt beim Kompilieren (gcc) immer nur zu:
test.cpp: In function ‘int main()’:
test.cpp:6: error: expected initializer before ‘*’ token
test.cpp:8: error: ‘zahl2’ was not declared in this scopeWas habe ich falsch gemacht???
Danke
-
zahl2* ist ein Zeiger , Zeiger enthalten immer eine adresse eines Wertes.
also musst du zahl2* die adresse von zahl1 zuweisen
das machst du so:
int* zahl2 = &zahl1;wenn du jetzt über den zeiger auf zahl1 zugreifen möchtest musst du den Zeiger dereferenzieren
so:
cout<<*zahl2; //oder *zahl2 = 16;edit: hoppla jetzt bin ich selber reingefallen

hab es korrigiert
-
int zahl2* = zahl1;so schreibt man das nicht, sondern so
int* zahl2 = &zahl1;
-
Also wenn in einem C++-Primer als erstes Zeiger kommen, würde ich Dir raten, das Buch zu entsorgen. Zeiger sind kompliziert und gefährlich. Zeiger sind in einem modernen C++-Programm selten notwendig.
Tntnet
-
tntnet schrieb:
Also wenn in einem C++-Primer als erstes Zeiger kommen, würde ich Dir raten, das Buch zu entsorgen.
den gleichen Gedanken hatte ich gestern auch, als ich das Posting gelesen hatte. Aber dann habe ich bei amazon und bei accu nachgesehen, ... das Buch hat nur gute Noten.
Gruß
Werner
-
Das Zeiger zu Anfang kommen, ist natürlich für eine Sprache wie C++ ungünstig. Aber ich denke mal, es gibt schlechtere Bücher. Ich pers. empfehle aber trotzdem immer das Buch von Ulrich Breymann, der auch schon ein gutes STL-Buch geschrieben habe. Bei ihm kommen vor den Zeigern sogar vorher noch Referenzen dran. Und vor char* kommen strings. Vor Array kommen vector dran. Aber natürlich lässt er Pointer und Array nicht unter den Tisch fallen, sondern geht in seinem Buch davon aus, dem Leser C++ als Hochsprache bei zubringen, mit der man später auch lowlevel entwickeln kann.
http://www.hanser.de/buch.asp?isbn=3-446-40253-5&area=Computer
C++ Primer ist denke ich trotzdem nicht schlecht. Da kommen relativ früh Strings dran.
Hier noch ein Video für Pointer-Verständnis:
http://www.cs.stanford.edu/cslibrary/PointerFunCpp.avi