C++ const 详解
首先声明 这个不是我原创的我也是从别的地方看到的
const 详解:
常变量: const 类型说明符 变量名
常引用: const 类型说明符 & 引用名
常对象: 类名 const 对象名
常成员函数: 类名::fun(参数) const
常数组: 类型说明符 const 数组[大小]
常指针: const 类型说明符 * 指针名 , 类型说明符 * const 指针名
在常变量, 常引用, 常对象, 常数组 中, const 与类型说明符或类名的 位置可以互换!!
比如: const int a=10; 等价于 int const a=10;
注意:
ex:
const int* p = new int(10);
int* const q = new int(10);
记住 const 只对它左边的东西起作用, 除非左边没有东西 才会对右边起作用, 所以 const int* a;等价于 int const * a;
对前面的ex:
我们有 p是常量指针, 即 不能通过p来修改p所指向的值,但是可以可以修改p的指向 eg:p++; 允许, (*p)++; 禁止
q是指针常量, 即 不能修改让q指向其他的内存区域,但是可以修改q指向的值 eg:p++; 禁止, (*p)++; 允许
常量指针 const int * a; int const * a;
指针常量 int * const a;