Chinaunix

标题: 关于CONST 指针指向问题 [打印本页]

作者: wangchacha    时间: 2007-09-11 09:07
标题: 关于CONST 指针指向问题
<<c++primer 3rd >>电子版 85页 14行"我们可以定义一个const 指针指向一个const 或一个非const 对象例"  const 指针能指向const对象吗?
课后题练习3.17 (d) int *const cpi = &ic;  //是否合法?
小弟出学,浓雾中...
作者: Godbach    时间: 2007-09-11 09:19
应该合法,该指针只读。
兄弟可以看一下坛子里的另外一篇帖子,也是一个网友问的关于const和指针一起使用的问题,好像是昨天的帖子。
作者: Guang-Yuan.Wang    时间: 2007-09-11 09:24
是合法的.

int * const cpi =&ic;
const 修饰 cpi, 表明指针变量cpi不可修改

int const * cpi =&ic;
const 修饰 *cpi, 表明指向的内容不可修改, 但是指针是可变的

你可以自己试试

还可以用 int const * const cpi =&c;
两者均不可变
作者: cugb_cat    时间: 2007-09-11 09:25
这些在C专家编程上都有描述
作者: wangchacha    时间: 2007-09-11 09:45
起初我也认为合法,但是在侯杰译的<<c++ Primer>>题解中该题被解为非法.而且我用VC++6.0也编译了,确实不能编译.
作者: Godbach    时间: 2007-09-11 10:11
VC6.0的兼容性不好,不支持C99标准,前两天我的Linux C 程序到VC6.0下也报了很多错。
你可以用一个比较新点的编译器
作者: xibaluma    时间: 2007-09-11 11:16
原帖由 Guang-Yuan.Wang 于 2007-9-11 09:24 发表
是合法的.

int * const cpi =&ic;
const 修饰 cpi, 表明指针变量cpi不可修改

int const * cpi =&ic;
const 修饰 *cpi, 表明指向的内容不可修改, 但是指针是可变的

你可以自己试试

还可以用 int c ...


呵呵 初学C++ 学习了~




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2