Monday, January 7, 2008

Array Initialization

An array can be initialized in the declaration by writing a comma-separated list of values enclosed in braces following an equal sign.

int days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
Altho this looks like an assignment, assignment statements with arrays are not allowed, and this syntax is legal only in a declaration.

Size can be set from initial value list

If the size is omitted, the compiler uses the number of values. For example,

// is the same as the statement below:
int days[] = {31,28,31,30,31,30,31,31,30,31,30,31};

No default value

If an array has no initialization, the values are undefined.

float pressure[10];   // Initial values of pressure undefined.

Missing initialization values use zero

If an explicit array size is specified, but an shorter initiliazation list is specified, the unspecified elements are set to zero.

float pressure[10] = {2.101, 2.32, 1.44};

This not only initializes the first three values, but all remaining elements are set to 0.0. To initialize an array to all zeros, initialize only the first value.

float p1[1000];         // No intitialization.
float p2[1000] = {0.0}; // All 1000 values initialized to zero.
the same as
float p2[1000] = {}; // All 1000 values initialized to zero.

Initialization of character arrays

Character arrays can be initialized on the right by writing a double-quoted string.

char greeting[100] = "Hello"; // Remaining characters zero.
char goodbye[] = "Adios"; // Array size is 6 (final zero on strings).

0 comments: