!!!!!!!!!!!!
分类: LINUX
2010-09-13 09:58:11
1. 对于常量(符号常量)和常指针、常引用常对象声明都是一样的
定义格式:
const 数据类型 常量名=常量值;
或 数据类型 const 常量名=常量值;
例如:const int a=7; 或 int const a=7;(符号常量)
int b=5;
const int *p=&b; 或 int const *p=&b;(常指针)
const int &m=b;(常引用)
const Point pt; 或 Point const pt; //常对象不能更新
常指针和常引用在功能上有所限制,就是不能通过他们更改其指向的变量的数据(值)
2. 指针常量
定义格式:
数据类型 *const 指针常量=常量值;
如char ch,*const pch=&ch;(我是一步完成的,你也可以分开)
也就是说这个指针本身是个常量,不可改变,即它所指向的地址是固定的。但,ch是可以改变的。
有两种形式:
1.指向const的指针
使用指针定义的技巧,正如任何复杂的定义一样,是在标识符的开始处读它并从里向外读。
const指定那个“最靠近”的。这样,如果要使正指向的元素不发生改变,我们得写一个像这
样的定义:
const double* point;
从标识符开始,是这样读的:“x是一个指针,它指向一个const int。”这里不需要初始化,因为说x可以指向任何东西(那是说,它不是一个const),但它所指的东西是不能被改变的。
2.const指针
使指针本身成为一个const指针,必须把const标明的部分放在*的右边,如:
int d=1;
int* const x=&d;
现在它读成“ x是一个指针,这个指针是指向i n t的const指针”。因为现在指针本身是const指针,编译器要求给它一个初始化值,这个值在指针寿命期间不变。然而要改变它所指向的值是可以的,可以写* x = 2;
也可以使用下面两种合法形式中的任何一种形式把一个const指针变为一个const对象:
int d=1;
const int* const x=&d; // (1)
int const* const x2=&d; // (2)
现在,指针和对象都不能改变。
一些人认为第二种形式更好。因为const总是放在被修改者的右边。但对于特定的代码类型
来讲,程序员得自己决定哪一种形式更清楚。
chinaunix网友2010-12-31 20:43:11
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com
chinaunix网友2010-12-31 20:42:54
很好的, 收藏了 推荐一个博客,提供很多免费软件编程电子书下载: http://free-ebooks.appspot.com