const修饰指针时候的注意事项
2015-07-03 22:31
197 查看
const修饰指针的时候分四种情况:
1.const int* p; 这种情况下叫做 指向常量的指针,顾名思义,p指针指向的东西是个常量,而本身没什么限定,是可以变的。总结说:P可变,P指向的内容不可变
2.int const* p; 这种情况和第一种情况是一样的,P可变,P指向的内容不可变
3.int * const p; 这种情况下叫做 常量指针,顾名思义,指针p是个常量,所以p不可变,但是p指向的内容可变。总结说:p不可变,p指向的内容可变
4.const int* const p;这种情况叫做 指向常量的常量指针,顾名思义,指针p是个常量,p指向的内容也是个常量。总结说:p和p指向的内容都不可变
技巧:像const int* p可以看成 (const int*) p,很容易就想到这是个指向常量的指针;像int* const p可以看成(int*) const p,想成const直接修饰p,很容易想到这是个常量指针。(注:这里的括号并不是强制转换类型符,这是为了看得清楚而已)。
口诀 :左数(常量)右指(常量)
当const出现在*号的左边时指针指向的数据为常量
当const出现在*后右边时指针本身为常量
1.const int* p; 这种情况下叫做 指向常量的指针,顾名思义,p指针指向的东西是个常量,而本身没什么限定,是可以变的。总结说:P可变,P指向的内容不可变
2.int const* p; 这种情况和第一种情况是一样的,P可变,P指向的内容不可变
3.int * const p; 这种情况下叫做 常量指针,顾名思义,指针p是个常量,所以p不可变,但是p指向的内容可变。总结说:p不可变,p指向的内容可变
4.const int* const p;这种情况叫做 指向常量的常量指针,顾名思义,指针p是个常量,p指向的内容也是个常量。总结说:p和p指向的内容都不可变
技巧:像const int* p可以看成 (const int*) p,很容易就想到这是个指向常量的指针;像int* const p可以看成(int*) const p,想成const直接修饰p,很容易想到这是个常量指针。(注:这里的括号并不是强制转换类型符,这是为了看得清楚而已)。
口诀 :左数(常量)右指(常量)
当const出现在*号的左边时指针指向的数据为常量
当const出现在*后右边时指针本身为常量
相关文章推荐
- C++实现顺序栈之两栈共享存储空间
- 二进制的妙用
- 自开发实现Quartz Web管理
- 【HM】第8课:Request与Response详解
- 20150630_UI之按钮UIButton使用
- Pascal 排序算法
- .net MVC简介、项目中每个文件夹的功能
- Win8.1屏幕亮度自动调节关闭方法
- iOS 计算 日期 距离 当前 系统的日期 相差 多少
- Codeforces Round #310 (Div. 1) B. Case of Fugitive
- Android实践-使用ViewPager和Fragment实现带Tab导航条的仿新闻类页面
- 【足迹】终于学完了web组件设计的视频课程
- BZOJ3024 : [Balkan2012]balls
- ACPI 高级配置与电源接口 (介绍的比较详细)
- 黑马程序员——Java基础---线程的另一个总结(4)--线程通信(互斥),线程范围的共享变量
- 矩阵清零(算法)
- 非常不错的一款打字代码效果
- [iOS]使用autolayout的时候会有明明设置和父视图左右间距为0但却还有空隙问题
- Word标题怎么更改
- leetcode#224 Basic Calculator