一个c语言类型转换的有关问题

一个c语言类型转换的问题
[code=C/C++][/code]
const int i = 10;
int j = i;

const char *p = "****";
char *q = p;


为什么上面两行是正确的?而下面两行是错误的呢??

------解决方案--------------------
编译肯定通不过的,只是是否在编译前提示错误那要看那种编译器,
const 指针不能直接给非const指针赋值, 因为const 指针所指向的值是不可变的, 如果把地址付给另外一个非const 的指针,则可能引起值变化,所以不可行。
而 const int 类型所定义的变量,则可以看成是一个常量,
在赋值是你可以看成是,int j = 10;所以可行