Tip

En un arreglo todos los datos eran del mismo tipo, aquí pueden ser diferentes.

Supongamos que se desea almacenar los datos de una colección de discos compactos (CD) de música. Estos datos pueden ser:

struct coleccion_cd {
    char titulo[30];
    char artista[25];
    int numCanciones;
    float precio;
    char fecha_compra[20];
};

Y se puede representar de manera gráfica de la siguiente manera:

graph TD
subgraph coleccion_cd
	v1["titulo"]
	V2["artista"]
	v3["numCanciones"]
	v4["precio"]
	v5["fecha_compra"]
end

Declaración de una estructura

struct <nombreDeLaEstructura>{
    <tipoDeDato> <nombreDeCampo>
    <tipoDeDato> <nombreDeCampo>
    <tipoDeDato> <nombreDeCampo>
    <tipoDeDato> <nombreDeCampo>
    ...
    <tipoDeDato> <nombreDeCampo>
};

Declarando variables struct:

Hay dos formas:

NOTA: Se declaran arriba o antes de la función principal.

struct coleccion_cd {
    char titulo[30];
    char artista[25];
    int numCanciones;
    float precio;
    char fecha_compra[20];
};

int main(){
    struct coleccion_CD CD1, CD2, CD3;
}
graph LR
subgraph CD1
	v11["titulo"]
	V21["artista"]
	v31["numCanciones"]
	v41["precio"]
	v51["fecha_compra"]
end

subgraph CD2
	v12["titulo"]
	V22["artista"]
	v32["numCanciones"]
	v42["precio"]
	v52["fecha_compra"]
end

subgraph CD3
	v13["titulo"]
	V23["artista"]
	v33["numCanciones"]
	v43["precio"]
	v53["fecha_compra"]
end

struct coleccion_cd {
    char titulo[30];
    char artista[25];
    int numCanciones;
    float precio;
    char fecha_compra[20];
} CD1, CD2, CD3;