2. Yes

3. Well, pointers can emulate arrays. So var was set up to point to some pointers, which pointed to the actual memory being used as an array.

4. From what I remember on matrix...