Was ist der Unterschied zwischen:
char * const
und
const char *
Was ist der Unterschied zwischen:
char * const
und
const char *
const char* x Hier ist X im Grunde ein Zeichenzeiger, der auf einen konstanten Wert verweist
char* const x bezieht sich auf einen Zeichenzeiger, der konstant ist, aber die Position, auf die er zeigt, kann geändert werden.
const char* const x eine Kombination aus 1 und 2 ist, bedeutet dies, dass es sich um einen konstanten Zeichenzeiger handelt, der auf einen konstanten Wert verweist.
const *char x führt zu einem Compilerfehler, da es nicht deklariert werden kann.
char const * x ist gleich Punkt 1.
gilt die Faustregel, dass const mit var name ist, wird die der Zeiger bleibt konstant, aber die Position des Zeigers kann geändert werden sonst der Zeiger zeigt auf eine konstante Stelle und der Zeiger kann auf eine andere Stelle zeigen, aber der Inhalt des Zeigers kann nicht geändert werden .
Viele Antworten bieten spezifische Techniken, Daumenregeln usw., um diesen besonderen Fall der Variablendeklaration zu verstehen. Aber es gibt eine allgemeine Technik, um jede Deklaration zu verstehen:
Uhrzeiger/Spiralregel
A)
const char *a;
Gemäß der Uhrzeiger-/Spiralregel a
ist ein Zeiger auf ein Zeichen, das konstant ist. Das heißt, das Zeichen ist konstant, aber der Zeiger kann sich ändern, z.B. a = "other string";
ist in Ordnung, aber a[2] = 'c';
wird nicht kompiliert
B)
char * const a;
Wie in der Vorschrift vorgesehen, a
ist ein Konstantenzeiger auf ein Zeichen, d.h. Sie können a[2] = 'c';
aber Sie können nicht tun a = "other string";
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.