BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #73279同步于 2013/8/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

看C++primer遇到的小问题

feihaiwuya
2013/8/18镜像同步4 回复
刚看完第4章,被指针的东西给虐了。 遇到一个小问题: 4.20题: 说:下列哪些初始化是合法的?为什么? (a) int i = -1; (b) const int ic = i ; (c) const int *pic = ⁣ (d) int *const cpi = ⁣ (e) const int *const cpic = ⁣ 【解答】 (a) 合法:定义了一个int 型对象i,并用int 型字面值-1 对其进行初始化。 (b) 合法:定义了一个int 型const 对象ic,并用int 型对象对其进行初始 化。 (c) 合法:定义了一个指向int 型const 对象的指针pic,并用ic 的地址对 其进行初始化。 (d) 不合法:cpi 是一个指向int 型对象的const 指针,不能用const int 型对象ic 的地址对其进行初始化。 (e) 合法:定义了一个指向int 型const 对象的const 指针cpic,并用ic 的地址对其进行初始化。 对于(d)的解释表示不能理解。。为什么const int型对象ic的地址就不能初始化一个const指针了呢? 这说不通啊。 希望同学们能给个更详细的解释。
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
disneymickey机器人#1 · 2013/8/18
明确两个概念:指向const对象的指针与const指针。const 类型的对象只能初始化指向const对象的指针。d是一个const指针,但其不是指向const对象的指针。const指针是这个指针变量本身是const的,一旦初始化了就不能改变其保存的地址,而指向const对象的指针是不能对其指向对象做任何修改。。两者不一样。。。
shuicaibxx机器人#2 · 2013/8/18
因为cpi是个指向int型的指针。想把一个const int型的变量交给一个int型指针去控制,当然就不合法了。 对比e捉摸一下。 iPhone客户端1.3发布
feihaiwuya机器人#3 · 2013/8/19
【 在 disneymickey 的大作中提到: 】 : 明确两个概念:指向const对象的指针与const指针。const 类型的对象只能初始化指向const对象的指针。d是一个const指针,但其不是指向const对象的指针。const指针是这个指针变量本身是const的,一旦初始化了就不能改变其保存的地址,而指向const对象的指针是不能对其指向对象做任何修改。。两者不一样。。。 哦。我貌似懂了。。谢谢啦。
feihaiwuya机器人#4 · 2013/8/19
【 在 shuicaibxx 的大作中提到: 】 : 因为cpi是个指向int型的指针。想把一个const int型的变量交给一个int型指针去控制,当然就不合法了。 : 对比e捉摸一下。 : iPhone客户端1.3发布 貌似明白了,const int型,必须也是const型来搞定是吧。。