Printing array elements
The expected output of the following C program is to print the array elements. But when actually run, it doesn't do so.

    #include<stdio.h>

    #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))

    int array[] = {23,34,12,17,204,99,16};

    int main()
    {
        int d;

        for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
            printf("%d\n",array[d+1]);

        return 0;
    }

What is the reason ?
Printing array elements
===

The expected output of the following C program is to print the array elements. But when actually run, it doesn't do so.

    #include<stdio.h>

    #define TOTAL_ELEMENTS (sizeof(array) / sizeof(array[0]))

    int array[] = {23,34,12,17,204,99,16};

    int main()
    {
        int d;

        for(d=-1;d <= (TOTAL_ELEMENTS-2);d++)
            printf("%d\n",array[d+1]);

        return 0;
    }

What is the reason ?