Chinaunix首页 | 论坛 | 博客
  • 博客访问: 250072
  • 博文数量: 88
  • 博客积分: 1429
  • 博客等级:
  • 技术积分: 523
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-18 15:31
文章分类

全部博文(88)

文章存档

2017年(2)

2016年(24)

2013年(1)

2012年(24)

2011年(15)

2010年(22)

我的朋友

分类: C/C++

2010-11-09 19:58:50

Dan Saks的《const T vs.T const》的一文中,有这样一句话:
Although C and C++ read mostly from top-tobottom and left-to-right, pointer declarations read, in a sense, backwards.
 
即:下面的式子的读法是从右向左读。
T const *p;
<--------- pointer to a const T
T *const p;
<--------- const pointer to a T
 
 
一、指针常量
int const *p;
p是一个指向整形常量的指针。p内保存的常量的地址可以变,而地址指向的常量不能改变。

int a;
int const *p = 0;

p = &a; //可以

*p = 1; //错误,不能更改p指向的对象的值

所以,指针常量定义时必须初始化,因为后面不能更改指针p指向的对象的值。

二、常量指针
int * const p;
p是一个常量指针,其保存的地址不能更改。

int a;
int * const p = 0;

*p = 1; //可以
p = &a; //错误

文件: Dan_Saks_const_T_vs_T_const.pdf
大小: 48KB
下载: 下载

阅读(716) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~