Was bedeutet const struct
? Unterscheidet es sich von struct
?
Der const
-Teil gilt wirklich für die Variable, nicht für die Struktur selbst.
z.B. @Andreas sagt richtig:
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
Das Wichtigste ist jedoch, dass die Variable foo
konstant ist, nicht die struct
-Definition selbst. Sie könnten das genauso schreiben als:
struct apoint {
int x;
int y;
};
const struct apoint foo = {10, 20};
foo.x = 5; // Error
struct apoint bar = {10, 20};
bar.x = 5; // Okay
Die Variable struct
ist konstant, d. H. Sie können die Felder nach der Initialisierung nicht bearbeiten.
const struct {
int x;
int y;
} foo = {10, 20};
foo.x = 5; //Error
EDIT: GrahamS weist korrekt darauf hin, dass die Konstante eine Eigenschaft der Variablen ist, in diesem Fall foo
, und nicht die struct-Definition:
struct Foo {
int x;
int y;
};
const struct Foo foo = {10, 20};
foo.x = 5; //Error
struct Foo baz = {10, 20};
baz.x = 5; //Ok
Ich glaube, dass eine const-Struktur nicht modifiziert werden kann. Mit anderen Worten, alle Felder einer Struktur, die als const deklariert ist, können nicht geändert werden.
Const bedeutet, dass Sie können nicht bearbeiten das Feld der Struktur nach der Deklaration und Initialisierung und can die Daten aus der Struktur abrufen
'const', wie die Wortkonstante selbst anzeigt, bedeutet nicht änderbar. Dies kann auf Variablen eines beliebigen Datentyps angewendet werden. Da struct ein benutzerdefinierter Datentyp ist, gilt es auch für die Variablen einer beliebigen Struktur. Nach der Initialisierung kann der Wert der const-Variablen nicht mehr geändert werden.