Fragen zu Zeiger und Variable

Xervos

Erfahrenes Mitglied
Hallo Leute,

ich habe ein Paar Anfängerfragen, wo ich einfach nicht draufkomme was dies zu bedeuten hat.

Ok also zb. ein
Code:
char *CharPointer
ist ein Zeiger des typs Char. Richtig so ?

Ich den wert der Variable
Code:
 char Buchstabe = 'A'
so dem Zeiger zuweisen
Code:
 CharPointer = &Buchstabe
zuweisen.

ok alles soweit verstanden. Nur dann habe ich jetzt meine Frage, was bedeutet es wenn ich den * direkt nach char setzte also so
Code:
 char* Pointer
und was bedeutet es wenn ich das zweimal mache also so
Code:
 char**

kann mir da einer helfen
danke schon mal

lg
 
Moin,

C++:
char *Pointer;
// ist äquivalent zu 
char* Pointer

C++:
char** Pointer;   //  ein Zeiger auf einen Zeiger !!

Gruß
Klaus
 
Zuletzt bearbeitet von einem Moderator:
Hi.
Moin,

C++:
char *Pointer;
// ist äquivalent zu 
char* Pointer
Aber Vorsicht: das Sternchen bindet nach rechts:
C++:
char* foo, bar;
foo ist vom Typ char*, bar ist vom Typ char!

Gruß

Hi.
aber was bringt ein Zeiger auf einen Zeiger ?
Du hast damit die Möglichkeit, den Wert des Zeigers auf den deine Zeigervariable zeigt zu ändern:

C++:
void func(const char** x) {
  *x = "foo";
}

int main() {
  const char *c = "abc";

  func(&c); // Adresse von c übergeben, damit der Wert von c geändert werden kann

  puts(c);
}
Man kann auch 2-dimensionale Arrays in Zeigern auf Zeiger speichern (denn eine Arrayvariable ist nichts anderes als ein Zeiger auf das erste Element des Arrays, und wenn das erste Element des Arrays ein Zeiger ist, dann kann es auch ein Zeiger auf ein Array sein...).

Gruß
 
Zuletzt bearbeitet von einem Moderator:
@Cromon: Naja, dieses Wort wird auch recht häufig benutzt. Aber ich kann wirklich französisch sprechen.
 
Zurück