Forum: PC-Programmierung Referenz ausgenen C++


von Lukas (Gast)


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

von Random .. (thorstendb) Benutzerseite


Lesenswert?

*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.

von Peter (Gast)


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.

von Daniel M. (Gast)


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

von Daniel (root) (Gast)


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;

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
Noch kein Account? Hier anmelden.