#include <stdio.h>

int main(void)
{
    int *zPtr;
    int *aPtr = NULL;
    void *sPtr = NULL;
    int number;

    int z[5] =
    { 1, 2, 3, 4, 5 };

    zPtr = z;
    sPtr = z;

    ++zPtr;

    number = *zPtr;

    printf("The value pointed to by zPtr is: %d\n",
           number);

    number = zPtr[2];

    printf("The value of zPtr[2] is: %d\n",
           number);

    printf("The complete array is:\n");

    for (int i = 0; i < 5; ++i)
    {
        printf("%d\t", zPtr[i - 1]);
    }

    puts("");

    number = *((int *)sPtr);

    printf("The value pointed to by sPtr is: %d\n",
           number);

    int *newPtr = z;

    ++newPtr;

    printf("The value after moving the pointer is: %d\n",
           *newPtr);

    return 0;
}