is a variable, in this case it is declared as a pointer to an array of 4 integers.
To read the declaration, start with the name of the variable (
in this case) and work out, going right when possible:
We can't go right because we need a matching bracket first, so we go left
"ptr is a pointer to..."
Now we have closed the brackets so we can go right again:
"ptr is a pointer to an array of four...
The equals ends teh declaration, so we have to go left again
"ptr is a pointer to an array of integers"
And the rest of teh line assigns a suitable value.
So when you use
later in your code, you are referring to the instance of an array of three arrays of four integers.
When you refer to
in your code you are referring to one of the arrays of four integers, because the "*" dereferences the pointer.
Did that make sense?