Code from Modern C programming doesn't work

ebook by Jens Gustedt

I copied this code from Chapter 1:

/* This may look like nonsense, but really is -*- mode: C -*- */
   #include <stdlib.h>
   #include <stdio.h>

   /* The main thing that this program does. */
   int main(void) {
     // Declarations
     double A[5] = {
       [0] = 9.0,
       [1] = 2.9,
       [4] = 3.E+25,
       [3] = .00007,
     };

     // Doing some work
     for (size_t i = 0; i < 5; ++i) {
         printf("element %zu is %g, \tits square is %g\n",
                i,
                A[i],
                A[i]*A[i]);
     }

     return EXIT_SUCCESS;
   }

And when I tried running it under Visual Studio using cpp compiler I got compilation errors. Why? How can I make visual studio compile both C and C++? I thought cpp would be able to handle just C.