c++ const关键字详解
const的基本概念:
const名叫常量限定符,用来限定特定变量,以通知编译器该变量是不可修改的。习惯性的使用const,可以避免在函数中对某些不应修改的变量造成可能的改动。
const修饰指针变量时:
(1)只有一个const,如果const位于*左侧,表示指针所指数据是常量,不能通过解引用修改该数据;指针本身是变量,可以指向其他的内存单元。
(2)只有一个const,如果const位于*右侧,表示指针本身是常量,不能指向其他内存地址;指针所指的数据可以通过解引用修改。
(3)两个const,*左右各一个,表示指针和指针所指数据都不能修改。
以下是const使用时常见的几种情况:
1.const int *p :无法修改p所指int值
2.int const *p 等价于 const int*p :无法修改p所指的int值
3.int * const p : 无法修改p所指的int *指针的值
4.int const p : 声明p为常量,
5.const int p 等价于 int const p : 声明p为常量
6.const int * const p : p所指的指针和int值均不可修改
7.const int & 等价于 int const & : 引用本身不可变,但引用的变量(或对象)可以改变
8.const修饰成员函数
const int * mallocA() const{
int *a=new int(2);
return a;
}
前一个const修饰该函数返回一个指针所指的值不可更改的int指针,后一个变量表明该函数内部不能修改成员变量的值
9.const 修饰成员变量时,不能使用
const int a = 10;
应为:
class A{
public:
A():a(10){}
private:
const int a ;
};
在编程中要尽可能多的使用const,这样可以获得编译器的帮助,以便写出健壮性的代码。
浙公网安备 33010602011771号