Defining Arrays:

Initialize code:
E.g., Fibonacci numbers
unsigned int Fib[12];           // Declaration without initialization
Fib[0] = 0; 
Fib[1] = 1; 
for (i=2; i<12; i++) {
    Fib[i] = Fib[i-2] + Fib[i-1];
}

Initialize with initializer list:
unsigned int Fib[12] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89};
unsigned int Fib[] =  {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89}; // same
unsigned int Fib[20] = {0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89}; 
        // remaining elements are initialized to 0;
unsigned int Fib[3] =  {0, 1, 1, 2, 3, 5, 8, 13}; 		// Error!
unsigned int x[20] = {0}; 	// initializes all elements to zero
unsigned int x[20] = {1}; 	// initializes first to 1, rest to zero
unsigned int x[20]; 		// not automatically initialized to zero


Note - using "symbolic constants"

#define SIZE 12				// at top of code - makes easier to change later
unsigned int Fib[SIZE];		// SIZE used in multiple places within the code
Fib[0] = 0; 
Fib[1] = 1; 
for (i=2; i<SIZE; i++) {
    Fib[i] = Fib[i-2] + Fib[i-1];
}

SIZE is a "symbolic constant" -- preprocessor directive, done before compiling
	there is no variable storage. USE UPPER CASE SO IT WILL STAND OUT

