The following code:
const char * p;
char * i = p;
does not compile in CPP.
error: invalid conversion from 'const char*' to 'char*
However, there are no compilation errors when compiling as C code. Why does C allow implicit casting of a const pointer to a non const pointer?