C++博客 :: 首页 :: 联系 ::  :: 管理
  163 Posts :: 4 Stories :: 350 Comments :: 0 Trackbacks

常用链接

留言簿(48)

我参与的团队

搜索

  •  

积分与排名

  • 积分 - 397025
  • 排名 - 59

最新评论

阅读排行榜

评论排行榜

第一种const指针:
const double *pc = 0;
这种类型的定义表示pc指针指向的内存的内容不可通过pc来修改!
const 变量的地址只能赋给const指针:
const double *pc = 0;
const double minWage = 9.60;
pc = &minWage;
但是const指针也可以指向非const变量
double dval = 3.14;
// ok: 不能通过pc 修改dval
// 虽然dval 本身不是一个常量
pc = &dval; // ok
注意!即使是指向非const变量也不可以通过pc修改变量的内容,因为pc有const修饰.
dval = 3.14159; // ok
*pc = 3.14159; // 错误
正因为这种const指针可以保证指向得内容不通过这个指针被修改,所以大家才常用下面的函数方式:
int strcmp( const char *str1, const char *str2 );
第二种const指针:
int errNumb = 0;
int *const curErr = &errNumb;
这一种是指针不能指向其他地址,只能指向初始化地址.
如果写出下面的代码就会发生错误:
curErr = &myErrNumb; // 错误
第三种const指针:
这种const指针是钱两种的结合,使得指向的内容和地址都不能发生变化.
const double pi = 3.14159;
const double *const pi_ptr = π
总上,应该了解,不论那种类型的const指针都不能限制它指向的内存内容不被修改,最多是限制不通过它被修改,或者限制它自己不被修改而已.

posted on 2007-12-26 14:10 sdfasdf 阅读(2077) 评论(2)  编辑 收藏 引用 所属分类: C++

Feedback

# re: 关于const 指针 2007-12-27 22:14 fanzhen
ding!  回复  更多评论
  

# re: 关于const 指针 2008-01-03 19:26 杜骞
很精辟  回复  更多评论
  


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理