Well what don't you understand about arrays.
They are extremely useful...for eg. if you have a 100 students and you want to store their marks, you would use an array rather than declare a 100 variables separately.
Edit:
Arrays are a collection of many variables under a common name.
So like for the marks thing...you can define an array like this:
int marks[100];
this means you have a 100 "int" variables at your disposal but you didn't have to declare them manually....that would be sooo tedious and annoying.
Once you have the array marks...you can access each of it's elements by the index.
The first location is at index 0 (arrays in C always start from 0...not 1) and you would access it by saying marks[0]...and the last element is at index 99...so marks[99];
These elements...marks[0], marks[1], etc...you just treat them as normal variables.
You can assign values to them:
marks[0] = 87;
marks[1] = 69;
etc.
and you can do other normal operations...like
int avg = (marks[0] + marks[1]) / 2;
this will give you the average of the first two marks
marks is an integer array because you declared it by saying int marks[100];
you can have other kinds of arrays like character arrays:
char name[100];
This will let you store a 100 characters...for eg. you can store a student's name
name[0] = 'P';
name[1] = 'a';
name[2] = 'u';
name[3] = 'l';
name[4] = '\0'; (with character arrays you always have to put this at the end to tell them where the name or whatever it is ur interested in ends...name[5] to name[100] has values that don't interest you and putting '\0' at marks[4] lets C know that )
you can also have arrays in more than 1 dimension...
for example in the name array you have a list to characters to make up a name....but if you wanted a list of names then you need a two dimensional array...but you can worry about that later.