请教一个关于*const变量的问题?

烂笔头Danky 2004-11-09 05:06:44
如下定义:
int i = -1;
const int ic = i;
int *const cpi = ⁣
const int *const cpic = ⁣

在编译到int *const cpi = &ic时出错,请问*const的对象是否不能反向const的对象呢?但cipic却可以指向const的对象ic,有谁可以说说为什么吗?
...全文
116 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
walterzh 2004-11-09
  • 打赏
  • 举报
回复
carylin(别信我,我在说谎) 说的是
关键不是cpi为指针常量,而是初始化的ic为常量
xuzheng318 2004-11-09
  • 打赏
  • 举报
回复
const指针地址不可改变!
可惜流年 2004-11-09
  • 打赏
  • 举报
回复
因为ic是常量,cpi只是个常量指针。cpi本身不可修改,但*cpi却是可以修改的
carylin 2004-11-09
  • 打赏
  • 举报
回复
int *const cpi; //定义指针常量cpi,指向int型变量。所以语句
//int *const cpi = ⁣当然出错了,应为ic是const型变量啊
const int *const cpic = ⁣//定义指针常量cpic,指向const型int数据
mathe 2004-11-09
  • 打赏
  • 举报
回复
int *const 是指向 int的指针,但是这个指针是const,所以不能用它指向const int
但是你可以用
int *const cpi = (int *const)&ic来强制指向它。
const int *也就是int const *,是指向const int 的指针,指针可以被修改,但是指向的内容不能被修改。所以
const int *cpic=&ic是可以的

const int *const 是指向const int的指针,指针也是const的,也就是说,指针也不能修改。

64,654

社区成员

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

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