The declaration int (*a)[10] declares 'a' as a pointer to an array of 10 integers. The parentheses around (*a) are crucial - they make 'a' a pointer first, which then points to an array of 10 ints. Without parentheses, it would be an array of 10 pointers (int *a[10]). Option B incorrectly suggests a function pointer, option C describes int (*a[10])(), and option D describes int *a[10].