Just a bit of an insight:
For example, int represents a single integer, int[] represents an array of integers.
To initialize the array with specific dimensions, you can use the new keyword, giving the size in the square brackets after the type name:
//create a new array of 32 ints.
int[] integers = new int[32];
All arrays are reference types and follow reference semantics. Hence, in this code, even though the individual elements are primitive value types, the integers array is a reference type. So if you later write:
int[] copy = integers;
this will simply assign the whole variable copy to refer to the same array, it won't create a new array.
C#'s array syntax is flexible, it allows you to declare arrays without initializing them so that the array can be dynamically sized later in the program. With this technique, you are basically creating a null reference and later pointing that reference at a dynamically allocated stretch of memory locations requested with a new keyword:
int[] integers;
integers = new int[32];
Thank You.