const的作用是修饰定义常量及变量,使不允许修改其值。例如 int const i = 10;
这样定义了i后,就再也无法修改i的值。例如之后int i=10;int i=j;等全部都会报错。这里还有一点,之后再次定义int i=10;也会报错,哪怕是修改成同等的数值也不可以。
const的使用有如下几个规则:
1.基本的数据类型对于const是透明的。
int const i = 0;const int j=0;此时i和j是等价的。
即const放在int的左边和放在int的右边,并没有任何影响。
2.const 限定它的直接右边。
const限定的是它右边第一个变量,例如int const i = j;const限定的是i。j仍然可以修改数值。
对于指针而言。int const *p =10;此时const限定的是 *p,即 *p 修改不了数值,但p仍然可以修改。
还有这种情况:int * const p = &a;此时const限定的是p,即 *p 可以修改。这儿还是直接看const的直接右边是 *p 还是p。
3.权限可以缩小或者同等传递,但不能放大。
const int *const cp = &a;
这里的const看起来有两个,但对&a并没有任何影响。
其中第一个const定义的是 *cp ,第二个const定义的是cp;即 *cp和cp都不可修改数值了。
还有const int b;这句话会报错,因为b并没有指定一个常变量。