幻想森林

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 2109|回复: 4

[通用编程] 还问const的问题

[复制链接]

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
发表于 2007-8-8 12:20:39 | 显示全部楼层 |阅读模式
char  *const p1;
const  char  *const  p1;
这两个可以理解,但
char * const * p3;  又应该如何理解呢?[s:6]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-8 13:47:22 | 显示全部楼层
這三個也是合法的嗎。。。。。 通常在開始加上const便可以,沒必要再加這嘛多個const。。。
好把,當成二維陣列考慮吧,這樣該會容易明白一點

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-8 13:53:58 | 显示全部楼层
找到類似的解說
如果const是在開頭,全個物體也是const,某相信
如果const不是在開頭的話,const前一個關鍵字是唯讀
char const*;//char是const
也就是指針指著的位置可以改,但内容便不可以
char* const;//*(指针)是const
指針指著的位置不可以改,但内容便可以
char const* const;//char和*都是const
指著的位置和内容也不可以改


char * const * p3

由於char後方不是const,所以内容可以改
但是第一層指針後是const,所以指著的第一維是不可以改,
第二層指針後不是const,所以第二維是可以改

這樣的感覺

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

313

主题

1574

帖子

1万

积分

⑧专业

*永恒国度*

积分
14145
QQ
 楼主| 发表于 2007-8-8 14:11:11 | 显示全部楼层
char  * const *p3==p3指向char类型的 const指针  这个同样是不能改变 p3指向的值但能改变 p3的地址,基本和  char  const *p3一样, 但这个在 const前多了个 *
究竟有什么作用呢? [s:3]
[img][/img] http://shop33698673.taobao.com被别人嫉妒,证明你优秀,嫉妒别人说明你无能
回复 支持 反对

使用道具 举报

19

主题

842

帖子

1万

积分

⑧专业

絕望青年,一起增高吧

积分
13676
发表于 2007-8-8 17:33:39 | 显示全部楼层
注意const不是一個資料型態,如果只從資料形態分析
char  * const * p3
=>
char  **p3
代表p3是一個二層指標,也就是一個指向指標的指標,二層指標的用法可看
http://bbs.rpgchina.com/read-htm-tid-29061.html
6L,如果august明白二維陣列的話某C便不多加説明了

為著彼岸,便要與之妥協 但為著彼岸,更不能與之妥協

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|幻想森林

GMT+8, 2024-5-4 00:16 , Processed in 0.031379 second(s), 21 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表