I think its called the "right-left" rule for determining the type of variables.
From the variable name, first you look to the right and then you look to the left.
So
The lable is "I" , look to the right? = nothing, look to the left? = int
So i is an int.
The lable is "a" , look to the right? = array, look to the left? = int
So a is an array of int
Now if we want to make 'a' a reference then we need to override the initial right check by using parentheses.
So the lable is "a" , look to the right? = nothing, look to the left? = reference(&), look to the right? = array, look to the left? = int
So 'a' is a reference to an array of int.
You start at the variable name and work your way from right to left outwards like an onion.
Hope that makes sense!