Initializing Arrays

The initializer for an array contains the = symbol followed by a comma-separated list of constant expressions enclosed in braces ({ }). You do not need to initialize all elements in an array. Elements that are not initialized (in extern and static definitions only) receive the value 0 of the appropriate type. ...

The following show four different character array initializations:

static char name1[] = { 'J', 'a', 'n' };
static char name2[] = { "Jan" };
static char name3[3] = "Jan";
static char name4[4] = "Jan";

These initializations create the following elements:

Element Value Element Value Element Value Element Value
name1[0] J name2[0] J name3[0] J name4[0] J
name1[1] a name2[1] a name3[1] a name4[1] a
name1[2] n name2[2] n name3[2] n name4[2] n
    name2[3] \0     name4[3] \0

 

Note that the NULL character is lost for name1[] and name3 [3]. In C, a compiler warning is issued for name3[3 ]. In C++, the compiler issues a severe error for name3[3 ].
Initializing a multidimensional array

Initialize a multidimensional array by:


You cannot have more initializers than the number of elements in the array.



Array
Initializer