C++11 code:
int a[3];
auto b = a; // b is of type int*
auto c = &a; // c is of type int(*)[1]
C code:
int a[3];
int *b = a;
int (*c)[3] = &a;
The values of b and c are the same.
What is the difference between b and c? Why are they not the same type?
UPDATE: I changed the array size from 1 to 3.