您的位置:首页 > 其它

指针与const

2018-04-03 17:40 225 查看
在这里,我列举几种情况并加以分析
先说两种比较基本的
1,指向常量的指针
char const *p1=“qwert”;// const char *p1=“qwert”它们等同
p1=“fdff”;//正确,只不过这时p1指向的地址变了而已
p2[2]='r';//错误,修改了常量
2,指针常量

char *const p1=“qwert”;
p1=“fdff”;//错误,p1所指向的位置是不能变的
p2[2]='r';//正确,这种情况它所指向可以改变
3.指向常量的常量指针

const char * const p1=“qwert”;
p1=“fdff”;//错误
p1[2]='r';//错误,这两种情况者都不可以改变
4,补充说明
int  *p1;
const int i=9;
p1=&i;//错误,因为p1不是一个常量,若通过它来改变i的值,则不符合i值为定值的这种情况
若改为,也就是编译器防止它通过*p1
const int *p1;则正确;修改值而报错
如下:
const int i=8;
const int *p1;
p1=&i;//正确
*p1=0//错误
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: