这个挺让人蛋疼的,看了爱忘,因为一直没怎么用。总结一下,以后不去c++ primer上查了。
const指针分为三类:
1、指向const对象的指针
(1)定义形式:const double* pt;//const 在定义的最前面。
(2)关键:pt可以改变指向,但不可以改变它所指向的那个对象的值。即它本身的值可以变化,但是不能使用pt改变被它指向的那个对象的值。
很明显嘛,pt是指向const对象的指针,const对象怎么能改变呢?但是,pt也可以指向非const对象,但把它当做const对象看待。
2、const指针
(1)定义形式:double* const pt;//const在定义的中间
(2)关键:pt不可以改变指向,它所指向的那个对象的值能够改变取决于对象本身。即pt本身的值不可改变,当pt指向的是const对象时,不能用pt改变该对象的值,当pt指向的是非const对象时,可以使用pt改变该对象的值。
3、指向const对象的const指针
(1)定义形式:const double* const pt;//有俩const,一个位于定义最前面,一个位于定义中间。
(2)关键:pt既不能改变指向,也不能改变它所指向的对象的值。即pt本身的值不能改变,同时它所指向的那个对象的值也不能修改。