int main() { double a[3]; a[1,1]=1; }
It passes the vs2013 compiler, and it is not 2D array.
You are invoking the comma operator. This evaluates its first operand, discards it, and returns the second one. So your code is the equivalent of
a[1] = 1;
The syntax for accessing an element of a 2D array would be
b[1][2] = 42;