Hey everyone,
I am tasked with some algorithmic problems in C as we as quizzes regarding the syntax of C.

There are three questions I don't understand.
1 - I was sure it's true because *void is like a generic pointer so we would point to any type of pointer with that.
But I chose True and it's marked as a wrong solution - why?

2-3. I didn't understand at all the syntax of these statements, a lot of braces of two kinds, a lot of de-references... I don't understand what's the role of each.
Can someone explain these statements?

1. In C language, it is always correct to use a variable of type void* to point to a pointer to a function.
True/False

2.
Choose the correct description for the following statement: char (* ( *f())[])();

Select one:
declaration of a pointer named f to a function which receives no parameters and returns an array of pointers to functions that receive no parameters and return a char
declaration of a pointer named f to an array of pointers to functions with no arguments returning a char
declaration of the function f which receives no parameters and returns a pointer to an array of pointers to functions that receive no parameters and return a char
declaration of a pointer named f to an array of functions with no arguments returning a char pointer
Incorrect statement
declaration of the function f which returns a pointer to an array of pointers to functions that return a char
declaration of a pointer named f to an array of functions with no arguments returning a char

3. Choose the correct description for the following statement: void(*f)(int, void(*)());

Select one:
f is a pointer to a function which returns nothing and receives as its parameters an integer and a pointer to a function which receives nothing and returns a void pointer
Incorrect statement
f is a function which returns a void pointer and receives as its parameters an integer and a pointer to a function which receives nothing and returns a void pointer
f is a pointer to a function which returns a void pointer and receives as its parameters an integer and a pointer to a function which receives nothing and returns a void pointer
f is a pointer to a function which returns nothing and receives as its parameters an integer and a pointer to a function which receives nothing and returns nothing