Read more: bLaCk_eYe_92

Selasa, 13 September 2011

7. Arrays

Arrays of any type can be formed in C. The syntax is simple:
        type name[dim];
In C, arrays starts at position 0. The elements of the array occupy adjacent locations in memory. C treats the name of the array as if it were a pointer to the first element--this is important in understanding how to do arithmetic with arrays. Thus, if v is an array, *v is the same thing as v[0], *(v+1) is the same thing as v[1], and so on:

Pointer use for an array
Consider the following code, which illustrates the use of pointers:

#define SIZE 3
void main()
    float x[SIZE];
    float *fp;
    int   i;
                                      /* initialize the array x         */
                                      /* use a "cast" to force i        */
                                      /* into the equivalent float      */
    for (i = 0; i < SIZE; i++)
        x[i] = 0.5*(float)i;
                                      /* print x                        */
    for (i = 0; i < SIZE; i++)
        printf("  %d  %f \n", i, x[i]);
                                      /* make fp point to array x       */
    fp = x;
                                      /* print via pointer arithmetic   */
                                      /* members of x are adjacent to   */
                                      /* each other in memory                  */
                                      /* *(fp+i) refers to content of         */
                                      /* memory location (fp+i) or x[i] */
   for (i = 0; i < SIZE; i++)
        printf("  %d  %f \n", i, *(fp+i));

(The expression ``i++'' is C shorthand for ``i = i + 1''.) Since x[i] means the i-th element of the array x, and fp = x points to the start of the x array, then *(fp+i) is the content of the memory address i locations beyond fp, that is, x[i].

0 ulasan:

By :
Free Blog Templates