指针与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//错误
先说两种比较基本的
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//错误
相关文章推荐
- 总结函数的参数,指针参数及const修饰的情况
- const修饰的指针
- 引用_const_指针
- 指针与const的关系
- const 和 指针
- const*与*const,const修饰指针的一种简单记忆方法
- “指向const对象的指针” 和 “const指针”
- const与指针
- const和指针
- const的指针的使用
- this指针及const对指针的封锁
- c++中的const与指针
- const关键字与指针
- C语言--const修饰指针解析
- const 指针与指向const的指针
- const Pointers and Pointer to const Objects 常量指针和指向常量对象的指针
- C++学习笔记之指针和const
- const与指针一起使用的组合情况:
- 漫谈C指针:从const int i说起
- const和指针