进行分析可知const修饰a,则直接访问为a,间接访问a都为*p,所以为了杜绝访问修改常量内存的风险,在 *p前面加上const即可。 判断const用法的正确与否 根据大小权限的判断,如下代码我们可以发现&a类型为int *,p类型为int *const,这是其中int *权限大于int *const权限也就是我们所说的权限缩小,所以这行代码是正确的。...
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 char* const pContent; (4)还有其中区别方法,沿着*号划一条线:如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量;如果const位于*的右侧,const就是修饰指针本身,即指针本身是常量。 3.函数中使用CONST (1)const修饰函数参数 a.传递过来的参数在函数内不可以改变(无意义,因为Var...
const 类对象与 const 变量并无实质不同,只在于类对象的 “改变” 定义。 类对象的 “改变” 定义:改变任何成员变量的值,调用任何非const成员函数 不能改变 const 类对象的任何成员变量,这一点比较好理解,因为 const 本身就带有不可改变变量取值(内部状态)的含义。为何const 类成员不能调用非const成员函数呢?我...
const的完整拼写为constant,意思是常量;C语言中的const关键字一般用于声明常量,即不可修改的变量。它可以用于修饰变量、指针以及类的成员函数。1.修饰变量:当const修饰变量时,表示该变量的值是不可修改的,即为常量。例如:const int a = 5;2.修饰指针:const可以修饰指针,分为指向常量的指针和常量指针。指向...
const int a;//只能在初始化列表赋值 int id; }; void fun() { /*** //对象 Student stu1;//普通对象,可以调用全部成员函数 const Student stu2;//常对象,调用const版本 const Student *p = &stu2;//常指针,调用const版本 const Student& q = stu1;//常引用,调用...
1.1 、用const修饰函数的参数 如果参数作输出用,不论它是什么数据类型,也不论它采用“指针传递”还是“引用传递”,都不能加const修饰,否则该参数将失去输出功能。 const只能修饰输入参数: 如果输入参数采用“指针传递”,那么加const修饰可以防止意外地改动该指针,起到保护作用。
1.const修饰类内的数据成员:表示这个数据成员在某个对象的生命周期中是常量。不同对象的该数据成员的值可以不一样,因此const成员函数不能在类内初始化。 2.const修饰类内的成员函数:这意味着这个函数不能修改对象的成员变量,提供了更严格的数据封装。 const的优点 为什么要使用const呢?以下是一些const的优点: 1....
一般写在函数的最后来修饰。 class A void function()const; /常成员函数, 它不改变对象的成员变量. /也不能调用类中任何非const成员函数。 对于const类对象/指针/引用,只能调用类的const成员函数,因此,const修饰成员函数的最重要作用就是限制对于const对象的使用。a. const成员函数不被允许修改它所在对象的任何一...