Es la capacidad de generar un nuevo tipo de dato a partir de otros anteriores.
struct NomTipoDato{ tipo1 miembro1; tipo2 miembro2; .... };
A partir de ahora podremos crear datos de tipo NomTipoDato , el cual tiene como información las variables miembro1 , miembro2, etc ... que son de tipo tipo1 tipo2 ... la manera de declarar una variable de este tipo es mediante la sentencia
struct NomTipoDato a, b;Esta sentencia genera dos elementos , a y b que son de tipo NomTipoDato.
a.miembro1= '3';suponiendo que miembro1 sea una variable tipo char (también podría ser un entero o long etc...).
otra manera de declarar otra variables es:
struct NomTipoDato{ tipo1 miembro1; tipo2 miembro2; .... } a , b;Este método hace lo mismo que el anterior en un único paso
Se pueden anidar una estructura puede a la ver ser tipo de dato de otra estructura.
Punteros a miembros (->) Si a es una estructura se accede a sus miembros mediante el punto pero pero si lo que tengo es un puntero a esta
punt_a = &a;entonces no puedo hacerlo porque el puntero no tiene miembro es la estructura , de esta manera hay dos formas:
(* a ).miembro1; // la necesidad de utilizar parentesis aqui es por la mayor prioridad del punto. a->miembro1;