Referenz ausgenen C++

Gast #1293047
Lesenswert?

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
Gast #1293068
Lesenswert?

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.
Gast #1293074
Lesenswert?

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
Gast #1294764
Lesenswert?

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;

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren