2016-06-22 13 views
-2

Ich übe Strukturen in C, und ich habe diesen Zweifel. Manchmal sehe ich so etwas wie:Strukturdefinition mit Zeiger

struct myStruct{ 
    //some data 
} *p; 

Was bedeutet, dass die Zeiger p bedeutet?

Wie ist das anders:

struct myStruct{ 
    //some data 
}; 

Antwort

3

In Ihrem Code

struct myStruct{ 
    //some data 
}; 

die Definition des struct ist. Es gibt keine Variable erstellt mit diesem Datentyp.

Auf der anderen Seite,

struct myStruct{ 
    //some data 
} *p; 

ist die Definition des struct sowie eine Variable des Typs p pointer-to struct erzeugen. Nachdem Sie Speicher auf p zugewiesen haben, können Sie mit diesem Zeiger auf die Elementvariablen zugreifen.

+0

bedeutet dies, dass 'struct myStruct {// einige Daten} * p;' äquivalent zu 'struct myStruct {// einige Daten};' gefolgt von 'struct myStruct * p;'? –

+0

@JohnBauer ja, richtig. –

+0

großartig. fertig hier ;) –