Arrays may be initialised when defined:

int myArray[4] = { 9, 8, 7, 6 };

The size is optional in this case, since the compiler sees that there are four elements in the initialiser. The initialiser must not be bigger than the size if specified, but it can be smaller. Either way, the size must be known at compile time — it can not be an expression in terms of the values of other objects or function calls. In C99, this restriction does not exist.

In C99, you can specify which elements of an array are initialised:

int myArray[4] = { [2] = 7, [0] = 9, [1] = 8, [3] = 6 };