Hallo wieso geht das nicht char *string = "Lukas"; //while (*string) //{ // cout << *string; // *string++; //} char &strinreferenz = *string; while (strinreferenz) { cout << strinreferenz; strinreferenz++; } Ich möchte statt mithilfe des Zeigers den Namen Lukas ausgeben deshalb habe ich den *string mit einer Referenz verknüpf Er zeigt aber nur L an
*pPointer ist der erste Wert des Pointers, also 'L' pPointer ist für printf, cout ein zeiger auf einen string, der Nullterminiert ist, das wäre "Lukas\0" VG, /th.
soweit ich weiss geht das nicht, weil man nur Zeiger addierne kann und keine Referenezen. Soetwas sollte man der Ordnunghalber auch nicht machen, Referenzen zeigen genau auf eine andere Variable/Object aber Zeigen zeigen auf speicherbereichen von einen Typ.
So using namespace std; #include <iostream> int main() { char *string = "Lukas"; //while (*string) //{ // cout << *string; // *string++; //} char *&strinreferenz = string; while (*strinreferenz) { cout << *strinreferenz; strinreferenz++; } } würde es gehen. Aber es wird trotzdem der eigentliche Zeiger "string" verändert, da ja eine Referenz darauf verwendet wird. Was willst du denn erreichen? Dass eben der Zeiger nicht verändert wird? Dann brauchst du nur einen Zeiger anstatt einer Referenz auf den originalen zu machen, was so aussehen würde: using namespace std; #include <iostream> int main() { char *string = "Lukas"; //while (*string) //{ // cout << *string; // *string++; //} char * pstring = string; while (*pstring) { cout << *pstring; pstring++; } } Mfg Daniel
char *string = "Lukas"; //while (*string) //{ // cout << *string; // *string++; //} warum veränderst du zusätzlich den String? Gib ihn nochmal mal aus ;-) string++ muss es heissen. noch etwas: nehne es cString, name, message, msg oder so, aber besser nicht string. Es gibt nämlich std::string. Damit erleichterst du allen anderen das Verstehen des Codes. Alle wissen dann, dass es ein rohes Zeichenpuffer ist. ich benutze gerne pc dafür, pointer to char. Entsprechend dann char ** ppc = &pc;
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.