普通指针
#include<stdio.h>
int main(){
int a=10;
int* p=&a;
int b=*p;//可读
*p=11;//可写
return 0;
}
在指针前面加const修饰(限定可以读内存,不能写内存)
注意事项
const一般用于限定函数的参数
int avg(const int* p,int len){
for(int i=0;i<len;i++){
//p[i]=p[i]+1;//不可写
printf("%d \n",*p);//可以读
p=p+1;//可以,const只是封禁的是星号操作,不允许写内存,但对于普通指针的加减是没关系的
}
}
不常用语法
int a;
int b;
int* const p=&a;//这是另一种用法
p=&b;//语法错误,p不能修改
重点熟悉const int*这种用法
小结:
(1)const指针,表示该内存是只读的;
(2)常用于修饰函数的参数,当const修饰,表示该参数仅用于输入。
int avg(const int* arr,int len);