下面我们来看一段程序,实践一下指针常量和常量指针:(程序8.4) #include "iostream.h" int main() { int a=42; const int b=84; const int *captr=&a;//常量指针 int * const acptr=&a;//指针常量 int *bptr=&b;//错误,不能把常量的地址给指针变量 const int *cbprt=&b;//把常量的地址给常量指针是允许的 *captr=68;//错误,间接引用常量指针不可修改内存中的数据 *acptr=68;//间接引用指针常量可以修改内存中的数据 captr=&b;//常量指针可以指向其他变量 acptr=&b;//错误,指针常量不能指向别的变量 const int * const ccaptr=&a;//常量指针常量,既不能间接引用修改数据,也不能指向别的变量或常量 *ccaptr=68;//错误,不能间接引用修改数据 ccaptr=&b;//错误,不能指向别的常量或变量 return 0; } 以上程序存在错误,无法通过编译。我们考虑到使用指针的安全性的时候,就能想到要使用以上这些保护措施保护内存中的数据。