1) Plz explain these complex declarations(from K&R).--
char(* (*f())) () // f : a function returning pointer to array of pointer to function returning char. char(* (*x)())  // x: array of pointer to function returning pointer to array of char.
The one line explanations which r given as comment were given in K&R but i couldnt understand them.
Do u know some links to tutorial of these kind of complex declarations?
2) Is there any special reason of- Why most C compilers include most of the header files implicitly, but in C++ we have to include them explicitly?
3) Can a global variable in C be declared anywhere in the program(outside all functions)?
Is this code valid according to C standards?
4) Is the value of NULL=0 according to C/C++ standard?