(1)只有一个const,如果const位于*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。 (2)只有一个const,如果const位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。 (3)两个const,*左右各一个,表示指针和指针所指数据都不能修改。
3、const 成员变量/成员函数 const成员变量只能被const成员函数访问 const成员函数,能够访问所有成员变量,但是在函数体内不能直接修改变量的值(包括普通成员变量),如果需要在函数体内修改普通成员变量的值,需要在变量定义的前面添加mutable关键字,或者通过地址间接修改。注意:const成员函数只能被该类的const对象访问。测试代...
b.const int * fun2() //调用时 const int *pValue = fun2(); //我们可以把fun2()看作成一个变量,即指针内容不可变。 c.int* const fun3() //调用时int * const pValue = fun2(); //我们可以把fun2()看作成一个变量,即指针本身不可变。 const在C语言中算是一个比较新的描述符,我们称之...
在这个例子中,print_array函数接受一个指向const int的指针作为参数,这意味着这个函数不会修改传入的数组。5.在结构体和联合中使用const:const也可以用于结构体和联合的成员,以保护这些成员不被修改。总的来说,const关键字在C语言中提供了一种机制来声明只读变量和指针,从而提高了代码的可读性、可维护性和安全...
const成员函数,能够访问所有成员变量,但是在函数体内不能直接修改变量的值(包括普通成员变量),如果需要在函数体内修改普通成员变量的值,需要在变量定义的前面添加mutable关键字,或者通过地址间接修改。注意:const成员函数只能被该类的const对象访问。测试代码如下: ...
error: uninitialized 'const ' [-fpermissive] 详细解释可以直接跳转:const 修饰变量; 2.const 修饰指针 //以下两者等价,表示 *p 不可变。*p 表示的是指针变量 p 所指向的内存单元里面的内容,此时这个内容不可变; const int *p int const *p //此时 const 修饰的是 p,所以 p 中存放的内存单元的地址不可变...
在C++中,如果成员变量被声明为`const`,那么它必须在构造函数的初始化列表中进行初始化,并且一旦初始化后就不能再被修改。这是因为`const`成员变量保证了其值在对象的生命周期内是恒定的。以...
const 关键字可以声明不可修改的参数。这样做可以确保函数内部不会修改参数的值。例如: Plain Text 复制代码 9 1 2 3 codevoid print(const string& str) { cout << str << endl;} 成员函数 在类的成员函数中,其实会默认传入一个 this指针 如果函数不会修改成员变量的值,可以在函数声明和定义中使用...
1、局部const变量存放在堆栈区中,会分配内存(也就是说可以通过地址间接修改变量的值)。测试代码如下: 运行结果: 2、全局const变量存放在只读数据段(不能通过地址修改,会发生写入错误), 默认为外部联编,可以给其他源文件使用(需要用extern关键字修饰) 运行结果: ...