在普通指针类型前面,加上const修饰
比如:
const int *p;
const char *p;
const double *p;
加不加const,有什么区别
(1)不加const
int a=10;
int *p=&a;
*p=11; //可写
int b=*p; //可读
(2)加上const修饰
int a=10;
const int *p=&a;
*p=11; //错误!不可写
int b=*p; //可读
结论:const的作用是封禁(限制)星号操作里的内存功能
称为:只读ReadOnly,这块内存只能读不能写
用途:
const用于限定函数的参数
int avg(const int *p,int len)
{
}
用于显示地指定:该参数是输入参数,在函数里只是读取这个内存,而不会修改这个内存的值。
当你不需要修改内存时,在指针前面加const修饰,避免一不小心的错误发生。
注意事项:const用于限定函数的参数
int avg(const int * p, int len)
{
for(int i=0;i<len;i++)
{
priintf("%d\n",*p); //可以读
p=p+1; //没问题
}
}
const只是封禁的是星号操作,不允许写内存,但对于普通的指针加减是没关系的。