C++ Zeiger
-
Also kann das gar nicht funktionieren?
Und wenn ja, weil so wie ich das im Buch verstanden habe ist das auch ein "Vorteil" von den Zeigern.
-
Sry für Doppelpost.
Hier nochmal einwenig Code:char *cp; // Zeiger auf char void *vp; // Zeiger auf void vp = cp;
Das geht, aber ich kann cp keinen Wert wie z.B. "u" zuweisen.
Wieso nicht? :I
-
*cp = 'u';
Geht doch ?
Mal davon abgesehen dass cp nirgendwohin zeigt...
-
Ich hasse Zeiger
Aber danke für die Antwort.
-
Halllo
eine Verstädnisfrage habe ich mal:int ∗ip = &i;//SO weise ich dem Zeiger eine neue Adresse zu? ∗ip = 8;//So weise ich der Adresse einen neuen Wert zu?
-
Ups...
Das sollen sternchen (*) sein. (∗)
-
int * ip = &i; *ip = 8;
Wenn das der Code war, ja zu deiner Frage.
-
Nochmal kurz zur Erklärung:
int i1, i2; int* pointer; // definiert einen pointer auf integer int* pointer = &i1; // definiert einen pointer auf integer, und weißt ihm die addresse von i1 zu //wenn du pointer schreibst greifst du auf die Adresse zu: pointer = &i2; //Weist pointer die Adresse von i2 zu std::cout << pointer; // gibt die adresse aus //wenn du *pointer schreibst gibst du den Wert aus auf den pointer zeigt *pointer = 42; //der wert ist jetzt 42 std::cout << *pointer; //gibt 42 aus.
Das Sternchen sorgt dafür dass der Pointer dereferenziert wird. Außer bei der Definition des Pointers, das ist vielleicht etwas verwirrend.
-
Skeptar. schrieb:
Das geht, aber ich kann cp keinen Wert wie z.B. "u" zuweisen.
Wieso nicht? :IVorsicht! "u" ist ein Stringliteral und somit const char* .
Das ist etwas anderes als das Zeichen 'u'.Es geht
cp = "u"; //oder *cp = 'u'; // Hier muss cp aber auf gültigen Speicher zeigen.
-
Oder
c = u8"u";
Je nach Typ von c gehen auch
c = u"u";
c = U"U";
c = L"L";