关于const的疑问

h_5_hao 2009-01-05 08:03:51
const int*p=&i;
int const*p=&i;
int *const p=&i;
const int*const p=&i;
const X&X::clone();

int X::f()const;
以上的const分别代表什么意思啊?
...全文
103 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wjksd 2009-01-05
  • 打赏
  • 举报
回复
const int*p=&i; 指针p指向的是一个int类型的对象,并且不可以通过这个指针改变对象的值,例如(*p=2),注意这里的p不需要对它初始话,并且P的指向可以改变。这里的const只是限制不可以通过指针改变int对象的值,很多地方都说是p指向的是const int类型的。这里可以指向int类型的。
int const*p=&i;和上面一样。
int *const p=&i; 这里的const限制的是指针p.注意这里一定要初始化
const int*const p=&i;指针p既不能修改指向的对象,也不能修改只想对象的值。
星羽 2009-01-05
  • 打赏
  • 举报
回复
1 楼解释得挺好的
waizqfor 2009-01-05
  • 打赏
  • 举报
回复
UP了
lann64 2009-01-05
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xiaoyisnail 的回复:]
const int*p=&i;const修饰int,p指向的是一个int型的常量
int const*p=&i;同上
int *const p=&i;const修饰指针,p是一个常量指针,指向一个int对象,指针p本身不能被修改
const int*const p=&i;结合上面两种情况,指针p不能修改,p指向的int也不能修改,都是常量
const X&X::clone();clone是类X的成员函数,返回类型是X的常量引用,不能修改返回的对象
int X::f()const; f是类X的const成员函数,该函数不能修改对象的状态…
[/Quote]
up
xiaoyisnail 2009-01-05
  • 打赏
  • 举报
回复
const int*p=&i;const修饰int,p指向的是一个int型的常量
int const*p=&i;同上
int *const p=&i;const修饰指针,p是一个常量指针,指向一个int对象,指针p本身不能被修改
const int*const p=&i;结合上面两种情况,指针p不能修改,p指向的int也不能修改,都是常量
const X&X::clone();clone是类X的成员函数,返回类型是X的常量引用,不能修改返回的对象
int X::f()const; f是类X的const成员函数,该函数不能修改对象的状态,调用时编译器传入的this指针为const指针

65,211

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧