const声明数组,数组值不能被修改
const int days[12]={31,28,31,30};
const声明指针,指针不能用于改变其指向的值
double rates[5]={88.99, 100.12, 59.45};
const double* ptr=rates;
ptr[2]=222.22;//不可以
ptr++ //可以,因为没有修改指向的值,只是修改了指向的下一个地址
const 指针 常用于函数形参中,表明该函数不会使用指针改变数据
void show_array(const double * arr, int n);
上述代码在调用时依然需要传递指针,但是指针不在能修改其指向地址所保存的值
即, const限定的指针或数组,只能改变指针指向的地址,而不能改变指针指向地址所包含的值
另外,函数的形参列表中包含了const修饰的数组,其传递值可以是const修时的数组也可以是非const修饰的数组。
但是函数形参列表中某个参数非const修饰,那么其传递值只能是普通数组。
可以用const两次,使指针既不能改变值,也不能改变地址