Pointer arithmetic

Program:
#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:


