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中语句。