随笔-34  评论-108  文章-0  trackbacks-0
    使用一个指针时,涉及到两个对象:该指针本身和被它所指的对象。将一个指针的声明用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 探丫头 阅读(263) 评论(0)  编辑 收藏 引用 所属分类: 编程语言——C++

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理