# Pointer arithmetic

Program:

```c
#include <stdio.h>
#define N 5
int main()
{
    float arr[N], *fptr;

    int *iptr, a[N], i;

    /* initialize */
    for(i = 0; i < N; i++)
    {
        arr[i] = i*i;
        a[i] = i*i*i;
    }
    printf("Before Pointer Arithmetic\n");
    for(i = 0; i < N; i++)
    {
        printf("arr[%d] = %f\t", i, *(arr + i));
        printf("a[%d] = %d\n", i, a[i]);
    }

    //Pointer Arithmetic

    /* initialize ptr to point to element arr[3] */
    fptr = &arr[2];

    *fptr = 1.0;        /* arr[2] = 1.0 */
    *(fptr - 1) = 0.9;  /* arr[1] = .9 */
    *(fptr + 1) = 1.1;  /* arr[3] = 1.1 */

    /* initialize iptr in the same way */
    iptr = &a[3];
    *iptr = 0;          /* a[2] = 1.0 */
    *(iptr - 1) = -1;   /* a[1] = 1.0 */
    *(iptr + 1) = 1;    /* a[3] = 1.0 */

    printf("\nAfter Pointer Arithmetic\n");
    for(i = 0; i < N; i++)
    {
        printf("arr[%d] = %f\t", i, *(arr + i));
        printf("a[%d] = %d\n", i, a[i]);
    }
    return 0;
}
```

Output:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1712072042095/c33e12ce-f21a-412b-a2bc-c92ccd127109.png align="center")
