C++相关问题
来源:互联网 发布:我是歌手网络直播地址 编辑:程序博客网 时间:2024/05/01 14:54
1.int const* p, int * const p, const int* p分别有什么区别
转自http://blog.csdn.net/luokh327/article/details/51774572
一、指针和const
总体来说:如果关键字const出现在星号(*)左边,表示被指物是常量;如果出现在星号右边,表示指针自身是常量;如果出现在星号两边,表示被指物和指针两者都是常量。
1、const int *p:指向常量的指针(pointer to const)
(1)、指向常量的指针不能修改其所指对象的值;
const int *p:const int 修饰*p,*p是常量,不能再赋值,而p可以赋其他变量的地址,此处const int 与int const位置没有区别;
(2)、要存放常量对象的地址,只能使用指向常量的指针;也可以将普通的对象地址赋值给指向常量的指针,但是不能通过指向常量的指针来修改这个普通变量的值。
2、int* const p:常量指针(const pointer)
(1)、指针本身定义为常量,常量指针必须初始化;
(2)、不能直接将const int*类型指针,赋值给int* 类型的指针;
二、this指针与const
在C++的类成员函数中,在成员函数的开始执行前会构造一个 this 指针。默认情况下,this的类型是指向类类型非常量的常量指针,即Test *const this(Test为类名),与前面2中讨论的常量指针类似。此时,我们的常量对象(const Test*)不能直接访问普通的成员函数(Test*),因此需要将普通成员函数声明成常量成员函数(this声明成const Test* const this)。
阅读全文
0 0
- C语言相关问题
- C语言相关问题
- C#Dll 相关问题
- C数据类型相关问题
- c指针的相关问题
- C 编译相关的问题
- c语言相关小问题
- c语言相关问题记录
- c语言 scanf问题相关
- c语言-struct的相关问题
- C/C++相关问题整理(1)
- C/C++读写文件相关问题整理
- c语言-struct的相关问题
- WampServer2.0c配置及相关问题
- C语言中随机数相关问题
- C/C++编程相关问题总结
- (C语言)字符串反转相关问题
- c语言中数组相关问题
- Linux下logrotate日志轮询操作梳理
- 位置式和增量式PID
- java线程池介绍(一)
- Native VLAN
- 电商订单技术方案梳理
- C++相关问题
- mybatis分页/分页插件
- c++ 模板(1) 模板的声明以及类型别名
- 北大算法分析和复杂性理论-2017算法课第一次作业E:二叉树的操作
- 欢迎使用CSDN-markdown编辑器
- 如何定义一个只能在堆上(或栈上)生成对象的类
- 从零开始前端学习[1]:认识常用的标签
- SQL(DB2)学习20170913
- 判断一个字符串中出现次数最多的字符,统计这个次数