COHERENT manpages
This page displays the COHERENT manpage for array [Definition].
List of available manpages
Index
array -- Definition An array is a concatenation of data elements, all of which are of the same type. All the elements of an array are stored consecutively in memory, and each element within the array can be addressed by the array name plus a subscript. For example, the array int foo[3] has three elements, each of which is an int. The three ints are stored consecutively in memory, and each can be addressed by the array name foo plus a subscript that indicates its place within the array, as follows: foo[0], foo[1], and foo[2]. Note that the numbering of elements within an array always begins with `0'. Arrays, like other data elements, may be automatic (auto), static, or external (extern). Arrays can be multi-dimensional; that is to say, each element in an array can itself be an array. To declare a multi-dimensional array, use more than one set of square brackets. For example, the multi-dimensional array foo[3][10] is a two-dimensional array that has three elements, each of which is an array of ten elements. The second sub-script is always necessary in a multi-dimensional array, whereas the first is not. For example, the form foo[][10] is acceptable, whereas foo[10][] is not. The first form is an indefinite number of ten-element arrays, which is correct C, whereas the second form is ten copies of an indefinite number of elements, which is illegal. You can initialize automatic arrays and structures, provided that you know the size of the array, or of any array contained within a structure. An automatic array is initialized in the same manner as aggregate, but initialization is performed on entry to the routine at run time, instead of at compile time. Flexible Arrays A flexible array is one whose length is not declared explicitly. Each has exactly one empty `[ ]' array-bound declaration. If the array is multidimensional, the flexible dimension of the array must be the first array bound in the declaration; for example: int example1[][20]; /* RIGHT */ int example2[20][]; /* WRONG */ The C language allows you to declare an indefinite number of array elements of a set length, but not a set number of array elements of an indefinite length. Flexible arrays occur in only a few contexts; for example, as parameters: char *argv[]; char p[][8]; as extern declarations: extern int end[]; or as a member of a structure -- usually, though not necessarily, the last: struct nlist { struct nlist *next; char name[]; }; Example The following program initializes an automatic array, and prints its contents. main() { int foo[3] = { 1, 2, 3 }; printf("Here's foo's contents: %d %d %d\n", foo[0], foo[1], foo[2]); } See Also initialization, Programming COHERENT, struct