int const a;
const int a;这两条语句都把a声明为一个整数,它的值不能被修改。
由于a的值无法被修改,所以无法把任何东西赋值给它。有两种方法:
首先,可以在声明时对它进行初始化。
int const a=15;
其次,在函数中声明为const的形参在函数被调用时会得到实参的值。
下面记录几种易混淆 的定义形式:
int *pi;
pi是一个普通的指向整型的指针,是变量。
int const *pci;
是一个指向整型常量的指针。可以修改指针的值,但不能修改它所指向的值。(这个时候看const距离*近,那说明const修饰取 内容不可变)
int * const cpi;
cpi为一个指向整型的常量指针。此时指针是常量,它的值无法修改,但是可以修改它所指向的整型的值。(这个时候看const距离变量cpi近,说明修饰变量cpi的值不能变)
int const * const cpci;
这个cpci,无论是指针本身还是它所指向的值都是常量,不允许修改。