(a) Both are identical.
(b) The first is a correct declaration and second is wrong.
(c) The first declaration is a function returning a pointer to an integer and the second is a pointer to function returning int.
(d) Both are different ways of declaring pointer to a function