使用一个指针时,涉及到两个对象:该指针本身和被它所指的对象。将一个指针的声明用const“预先固定”,将使那个对象而不是这个指针成为常量,要使指针而不是被指的那个对象成为常量,我们必须使用声明运算符*const。
void f(char* p)
{
char s[]="Gorm";
const char* pc=s; //指向常量
pc[3]='g'; //错误,pc是指向常量的
pc=p; // ok
char* const cp=s; //常量指针
cp[2]='c'; //ok
cp=p; //cp是常量指针
const char* const cpc=s; //指向常量的常量指针
cpc[2]='g'; //错误,cpc指向常量
cpc=p; //错误,cpc是常量指针
}
定义常量指针的声明运算符是*const,没有const*声明符,所以出现在*之前的const是作为基础类型的一部分。
char* const cp; //到char的const指针
const char* pc; //到const char的指针
char const* pc2; //到const char的指针
有人发现从右向左读这样的定义是有帮助的。例如:cp is a const pointer to char and pc is a pointer to const char。
posted on 2007-01-15 10:45
探丫头 阅读(269)
评论(0) 编辑 收藏 引用 所属分类:
编程语言——C++