background image

     const (char*) pContent; 

(2)指针所指向的内容是常量不可变
     

const (char) *pContent; 

     (char) const *pContent; 

(3)两者都不可变
      

const char* const pContent; 

(4)还有其中区别方法,沿着*号划一条线:

如果 const 位于*的左侧,则 const 就是用来修饰指针所指向的变量,即指针指向为常量;
如果 const 位于*的右侧,const 就是修饰指针本身,即指针本身是常量。

 

3、函数中使用 CONST

(1)const 修饰函数参数

a.传递过来的参数在函数内不可以改变(无意义,因为 Var 本身就是形参)

void function(const int Var); 

b.参数指针所指内容为常量不可变

void function(const char* Var); 

c.参数指针本身为常量不可变(也无意义,因为 char* Var 也是形参)

void function(char* const Var); 

d.参数为引用,为了增加效率同时防止修改。修饰引用参数时:

void function(const Class& Var);

 

//引用参数在函数内不可以改变

void function(const TYPE& Var); 

//引用参数在函数内为常量不可变

这样的一个 const 引用传递和最普通的函数按值传递的效果是一模一样

的,他禁止对引用的对象的一切修改,唯一不同的是按值传递会先建立一个类
对象的副本, 然后传递过去,而它直接传递地址,所以这种传递比按值传递更有
效.另外只有引用的 const 传递可以传递一个临时对象,因为临时对象都是
const 属性, 且是不可见的,他短时间存在一个局部域中,所以不能使用指针,只
有引用的 const 传递能够捕捉到这个家伙.

(2)const 修饰函数返回值
    const 修饰函数返回值其实用的并不是很多,它的含义和 const 修饰普通