Page 103 - 6437
P. 103

When the above code is compiled and executed, it produces the following result:

                 Address of var[0] = bf882b30

                 Value of var[0] = 10
                 Address of var[1] = bf882b34

                 Value of var[1] = 100
                 Address of var[2] = bf882b38

                 Value of var[2] = 200


                          Decrementing a Pointer
                          The same considerations apply to decrementing a pointer, which decreases its value by
                   the number of bytes of its data type as shown below:



                 #include <stdio.h>


                 const int MAX = 3;


                 int main ()
                 {
                    int  var[] = {10, 100, 200};

                    int  i, *ptr;


                    /* let us have array address in pointer */
                    ptr = &var[MAX-1];

                    for ( i = MAX; i > 0; i--)
                    {


                        printf("Address of var[%d] = %x\n", i, ptr );

                        printf("Value of var[%d] = %d\n", i, *ptr );


                        /* move to the previous location */
                        ptr--;

                    }
                    return 0;

                 }




                                                                                                      10
                                                                                                      6
   98   99   100   101   102   103   104   105   106   107   108