Annotation of coherent/a/usr/man/ALL/array, revision 1.1.1.1

1.1       root        1: 
                      2: 
                      3: array                       Definition                      array
                      4: 
                      5: 
                      6: 
                      7: 
                      8: An array is a concatenation of data elements, all of which are of
                      9: the same type.  All the  elements of an array are stored consecu-
                     10: tively in  memory, and each  element within the array  can be ad-
                     11: dressed by the array name plus a subscript.
                     12: 
                     13: For example,  the array  int foo[3]  has three elements,  each of
                     14: which  is an  iinntt.  The  three iinntts  are stored  consecutively in
                     15: memory, and  each can be addressed  by the array name  ffoooo plus a
                     16: subscript that indicates  its place within the array, as follows:
                     17: foo[0], foo[1], and  foo[2].  Note that the numbering of elements
                     18: within an array always begins with `0'.
                     19: 
                     20: Arrays,  like  other  data  elements,  may be  automatic  (aauuttoo),
                     21: static, or external (eexxtteerrnn).
                     22: 
                     23: Arrays can be multi-dimensional;  that is to say, each element in
                     24: an array can itself  be an array.  To declare a multi-dimensional
                     25: array, use  more than one  set of square  brackets.  For example,
                     26: the multi-dimensional array foo[3][10] is a two-dimensional array
                     27: that  has  three elements,  each  of  which is  an  array of  ten
                     28: elements.  The second  sub-script is always necessary in a multi-
                     29: dimensional  array,  whereas  the  first  is not.   For  example,
                     30: foo[][10]  is acceptable,  whereas foo[10][]  is not.   The first
                     31: form is an indefinite number of ten-element arrays, which is cor-
                     32: rect C,  whereas the second  form is ten copies  of an indefinite
                     33: number of elements, which is illegal.
                     34: 
                     35: You can initialize automatic arrays and structures, provided that
                     36: you know the size of the  array, or of any array contained within
                     37: a structure.  An automatic  array is initialized in the same man-
                     38: ner as aggregate, but initialization is performed on entry to the
                     39: routine at run time, instead of at compile time.
                     40: 
                     41: ***** Flexible Arrays *****
                     42: 
                     43: A flexible array is  one whose length is not declared explicitly.
                     44: Each has exactly one empty `[ ]' array-bound declaration.  If the
                     45: array is  multidimensional, the  flexible dimension of  the array
                     46: must be the _f_i_r_s_t array bound in the declaration; for example:
                     47: 
                     48: 
                     49:         int example1[][20];     /* RIGHT */
                     50:         int example2[20][];     /* WRONG */
                     51: 
                     52: 
                     53: The C language allows you  to declare an indefinite number of ar-
                     54: ray  elements of  a set  length, but  not a  set number  of array
                     55: elements of an indefinite length.
                     56: 
                     57: Flexible arrays  occur in  only a  few contexts; for  example, as
                     58: parameters:
                     59: 
                     60: 
                     61: 
                     62: 
                     63: 
                     64: COHERENT Lexicon                                           Page 1
                     65: 
                     66: 
                     67: 
                     68: 
                     69: array                       Definition                      array
                     70: 
                     71: 
                     72: 
                     73:         char *argv[];
                     74:         char p[][8];
                     75: 
                     76: 
                     77: as extern declarations:
                     78: 
                     79: 
                     80:         extern int end[];
                     81: 
                     82: 
                     83: or as a member of a structure -- usually, though not necessarily,
                     84: the last:
                     85: 
                     86: 
                     87:         struct nlist {
                     88:                 struct nlist *next;
                     89:                 char name[];
                     90:         };
                     91: 
                     92: 
                     93: ***** Example *****
                     94: 
                     95: The following program  initializes an automatic array, and prints
                     96: its contents.
                     97: 
                     98: 
                     99: main()
                    100: {
                    101:         int foo[3] = { 1, 2, 3 };
                    102: 
                    103: 
                    104: 
                    105:         printf("Here's foo's contents: %d %d %d\n",
                    106:                  foo[0], foo[1], foo[2]);
                    107: }
                    108: 
                    109: 
                    110: ***** See Also *****
                    111: 
                    112: definitions, struct
                    113: _T_h_e _C _P_r_o_g_r_a_m_m_i_n_g _L_a_n_g_u_a_g_e, ed. 2, pages 25, 83, 210
                    114: 
                    115: 
                    116: 
                    117: 
                    118: 
                    119: 
                    120: 
                    121: 
                    122: 
                    123: 
                    124: 
                    125: 
                    126: 
                    127: 
                    128: 
                    129: 
                    130: COHERENT Lexicon                                           Page 2
                    131: 
                    132: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.