const与指针 有一下几种表示形态:

double tr=5;double tb=4;

1. const  double * cptr=&tr;

2. double const *cptr=&tr;

3. double * const cptr=&tr;

4. const double *const cptr=&tr;

5. double const *const cptr=&tr;

 

const 是一个修饰符,相当于形容词,三种语句的意义去分标准:const在 * 的左边还是右边;

在 * 的左边,说明const修饰的是指针所指向的变量,

       1和2的const都是修饰指针所指向的变量,即cptr所指的对象tr的值不可以改变。如果有语句: *cptr=6,则会出现编译错误。但可以有操作:cptr=&tb;

在 * 的右边,说明const修饰的是指针变量。

   3 的const都是修饰指针变量的,即变量 cptr的所指方向不可以改变,如果有语句:cptr=&tb;则会出现编译错误。但可以有操作:*cptr=6

有上面可以看出:4和5是一样的,意义:无论是变量cptr所指方向,还是cptr所指变量的值,都不可以改变,即:出现操作 cptr=&tb和*cptr=6,系统都会报错。

 

const可以限制程序对一个对象的所拥有的操作,如上,当我们想让tr在程序中只拥有只读操作,就可以在程序中用第1中语句。

    

 

 

 

posted on 2009-11-24 21:52  !-_-木糖-_-!  阅读(327)  评论(0编辑  收藏  举报