作用
限定一个对象为常量,该对象的值不能被改变,且该对象必须初始化
指针和const
指针作为一种对象,自然也能被const修饰成常量,而指针所指向的也是对象,同样也可以被const修成成常量
1.指针所指向的对象被const修饰成常量(指向常量的指针)
const double pi=3.14;
const double * cptr=π
从右向左解释语句:
cptr(对象名),*(是个指针),double(指向double型),const(的常量)
指针所指向的对象被const修饰成一个常量,常量无法更改,但指针本身可以更改,即指针可以指向别的地方
总结:
如果一块内存区域内存的是常量,就不能再用一个指向变量的指针指向这块区域,因为存在通过这个指针改变这块内存区域内的数值的可能。
如果一块内存区域内存的是变量,还可以用一个指向常量的指针
p
p
p 指向这块区域,虽然不能通过
p
p
p 改变这块内存区域内的值,但是通过
a
a
a 仍能改变这块内存区域内的值。
2.指针自己被const修饰成常量(const指针)
int * const curErr=&errNumb;
从右向左解释语句:
curErr(对象名),const(这个对象被const修饰成常量),*(这个对象是个指针),int(指向int型)
指针作为一个对象,被const修饰成一个常量,无法更改,即无法指向别的地方,但指针所指向的对象是个变量,可以被修改成新的值
3.指针所指向的对象被const修饰成常量,同时指针自己也被const修饰成常量
const double * const pip=π
从右向左解释语句:
pip(对象名),const(这个对象被const修饰成常量),*(这个对象是个指针),double(指向double型),const(的常量)
指针的指向和指针所指向的地址内存的值,都不能改