指向常对象的指针变量

//首先了解指向常变量的指针变量,然后再进一步研究指向常对象的指针变量。
//定义一个指向常变量的指针变量ptr
              const   char * ptr;
//定义指向常变量的指针变量的一般形式为
           const  类型名 *指针变量名;
//注意  a如果一个变量已被声明为常变量,只能用指向常变量的指针变量指向它,而不能用一般的(指向非const型变量的)指针变量去指向它。
  //    b指向常变量的指针变量除了可以指向常变量外,还可以指向未被声明为const的变量。此时不能通过此指针变量改变该变量的值。
如char  c1='a';  
const char *p;
p=&c1;
*p='b';//非法
c1='b'//合法
//       c如果函数的形参是指向非const型变量的指针,实参只能用指向非const变量的指针,而不能用指向const变量的指针
  //     d如果函数的形参是指向const型变量的指针,在执行函数过程中显然不能改变指针变量所指向的变量的值,因此允许实参是指向const变量的指针,或指向非const变量的指针。
//以上介绍的是指向常变量的指针变量,指向常对象的指针变量的概念和使用是与此类似的
//常对象
//a如果一个对象已被声明为常对象,只能用指向常对象的指针变量指向它,而不能用一般的(指向非const型对象的)指针变量去指向它。
//b如果定义了一个指向常对象的指针变量,并使它指向一个非const的对象,则其指向的对象是不能通过指针来改变的。
//c指向常对象的指针最常用于函数的形参,目的是在保护形参指针所指向的对象,使它在函数执行过程中不被修改  形参是const   , 要求实参可以是非const,也可以是const
//d如果定义了一个指向常对象的指针变量,是不能通过它改变所指向的对象的值的,但是指针变量本身的值是可以改变的。

posted @ 2017-05-14 20:44  衣带渐宽、为伊憔悴  阅读(343)  评论(0编辑  收藏  举报