A) An integer)
B) A pointer to an integer (A pointer to an integer)
C) A pointer to a pointer pointing to an integer (A pointer to a pointer to an integer)
D) An array of 10 integers (An array of 10 integers)
E) An array with 10 pointers pointing to An integer (An array of 10 pointers to integers)
F) A pointer to an array with 10 integers (A pointer to an array of 10 integers)
G) A pointer to a function. The function has an integer parameter and returns an integer number (A pointer to a function that takes an integer as an argument and returns an integer)
H) An array with 10 function pointers pointing to a function, this function has An integer parameter and returns an integer (an array of ten pointers to functions that take An integer argument and return an integer)
The answer is:
A) int a; // An integer
B) int * a; // A pointer to an integer
C) int ** a; // A pointer to a pointer to an integer
D) int a [10]; // An array of 10 integers
E) int * a [10]; // An array of 10 pointers to integers (int * faces the array after modification)
F) int (* a) [10]; // A pointer to an array of 10 integers
G) int (* a) (int); // A pointer to a function a that takes an integer argument and returns an integer
H) int (* a [10]) (int); // An array of 10 pointers to functions that take an integer argument and return an integer