Was ist der Unterschied zwischen:
char * const
und
const char *
Was ist der Unterschied zwischen:
char * const
und
const char *
Hier ist eine ausführliche Erklärung mit Code
/*const char * p;
char * const p;
const char * const p;*/ // these are the three conditions,
// const char *p;const char * const p; pointer value cannot be changed
// char * const p; pointer address cannot be changed
// const char * const p; both cannot be changed.
#include<stdio.h>
/*int main()
{
const char * p; // value cannot be changed
char z;
//*p = 'c'; // this will not work
p = &z;
printf(" %c\n",*p);
return 0;
}*/
/*int main()
{
char * const p; // address cannot be changed
char z;
*p = 'c';
//p = &z; // this will not work
printf(" %c\n",*p);
return 0;
}*/
/*int main()
{
const char * const p; // both address and value cannot be changed
char z;
*p = 'c'; // this will not work
p = &z; // this will not work
printf(" %c\n",*p);
return 0;
}*/
char * const und const char *?
const char * p;
// Wert kann nicht geändert werden
char * const p;
// Adresse kann nicht geändert werden
const char * const p;
// beide können nicht geändert werden.
Ich erinnere mich aus dem tschechischen Buch über C: lesen Sie die Erklärung, dass Sie mit der Variable beginnen und nach links gehen. Also für
char * const a;
können Sie als lesen: " a
ist eine Variable vom Typ konstanter Zeiger auf char
",
char const * a;
können Sie als lesen: " a
ist ein Zeiger auf eine konstante Variable vom Typ char. Ich hoffe, das hilft.
Bonus:
const char * const a;
Sie werden lesen als a
ist ein konstanter Zeiger auf eine konstante Variable vom Typ char.
Ich möchte darauf hinweisen, dass die Verwendung von int const *
(oder const int *
) geht es nicht um einen Zeiger, der auf eine const int
Variable ist, sondern dass diese Variable const
für diesen speziellen Zeiger.
Zum Beispiel:
int var = 10;
int const * _p = &var;
Der obige Code lässt sich problemlos kompilieren. _p
zeigt auf eine const
variabel, obwohl var
selbst ist nicht konstant.
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.