没系统地看过什么书,理论基础薄弱,其实我也经常觉得有些语法规则很拗口,转着转着就扯不清了,通常我会用代码测试。
经再次验证,我在15楼的说法有错误。
1:const int **pp不能指向一个指针变量,所以下述代码无法通过编译
int i,*p;
p=&i;
const int **pp=&p
//不能通过编译,会error c2440
2:const int *p按我的理解,是定义p为int指针类型常量,应该不能赋值,但下述代码可通过编译,p又可以赋值,有点蒙圈
int i=11;
const int v=15;
const int *p=&v;
p=&i;
printf("%d",*p);
//这个代码又通过编译了,p的指针值被改变,指向变量i,显示结果为11
不知是和缘故,还望tony版主释疑(编译环境还是vc6)