进行分析可知const修饰a,则直接访问为a,间接访问a都为*p,所以为了杜绝访问修改常量内存的风险,在 *p前面加上const即可。 判断const用法的正确与否 根据大小权限的判断,如下代码我们可以发现&a类型为int *,p类型为int *const,这是其中int *权限大于int *const权限也就是我们所说的权限缩小,所以这行代码是正确的。...
const char* const pContent; (4)还有其中区别方法,沿着*号划一条线:如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。 3.函数中使用CONST (1)const修饰函数参数 a.传递过来的参数在函数内不可以改变(无意义,因为Var...
int value=10;constint*constconst_ptr_to_const=&value;// *const_ptr_to_const = 20; // 错误:不能修改const_ptr_to_const所指向的值// const_ptr_to_const = &value2; // 错误:不能修改const_ptr_to_const本身 1. 2. 3. 4. 二、const修饰函数参数 1. const修饰普通参数 当const修饰函数的...
如只需要返回成员变量的成员函数就被声明为const类型(const的位置在函数定义参数列表之后) 推广开来,在const成员函数中也不能够调用非const的成员函数。这是因为非const成员函数可能会改变成员变量的值,这与const成员函数的定义相违背。 但是在某些情况下,需要在const函数中改变成员变量。这就需要把成员变量设置成mutable...
10、) ; /只能在初始化列表中赋值 (2)const修饰成员函数const修饰类的成员函数,则该成员函数不能修改类中任何非const成员函数。一般写在函数的最后来修饰。 class A void function()const; /常成员函数, 它不改变对象的成员变量. /也不能调用类中任何非const成员函数。 对于const类对象/指针/引用,只能调用类的...
const的完整拼写为constant,意思是常量;C语言中的const关键字一般用于声明常量,即不可修改的变量。它可以用于修饰变量、指针以及类的成员函数。1.修饰变量:当const修饰变量时,表示该变量的值是不可修改的,即为常量。例如:const int a = 5;2.修饰指针:const可以修饰指针,分为指向常量的指针和常量指针。指向...
1.1 、用const修饰函数的参数 如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const修饰,否则该参数将失去输出功能。 const只能修饰输入参数: 如果输入参数采用“指针传递”,那么加const修饰可以防止意外地改动该指针,起到保护作用。
类的const成员函数不能修改类的成员变量,看一下下面这个例子: classcTestConstMember{public:cTestConstMember();~cTestConstMember();voidDoThings()const;private:intm_nCount;mutableintm_nMutable;int*m_pInt;};cTestConstMember::cTestConstMember():m_nCount(10),m_nMutable(1),m_pInt(nullptr){m_pInt...
1、int * ( const p ):变量p 经过 const 修饰,为只读变量。 2、int (* (const p)):(const p 现在作为一个整体) 只读变量p是一个指针。 3、(int (* (const p))):(同样的 * const p 作为一个整体) 这个只读的指针p,指向一个int型变量。