gli arrai si suddividono in monodimesionali e bidimensionali.
I primi sono i Vettori int v[]; e i secondi le Matrici int mat[][]; La loro caratteristica è che immagazzinano dati omogenei tra loro. La matrice non è altro che una simulazione in memoria di n vettori.

Quando utilizzarli?
Questo aspetta a te, devi vedere che problema hai e poi decidere di conseguenza.

Io i vettori li usavo per fare l'ordinamento di n numeri, per contenere dei record:
typedef struct{
int campo1;
char campo2[10];
}record;
record v[10];

ti ripeto aspetta a te decidere. Spero di essere stato chiaro.
Ciao