C 常类型(const)
2008-02-23 05:25:34来源:互联网 阅读 ()
一般常量和对象常量
1. 一般常量
一般常量是指简单类型的常量。这种常量在定义时,修饰符const能够用在类型说明符前,也能够用在类型说明符后。如:
int const x=2;
或
const int x=2;
定义或说明一个常数组可采用如下格式:
<类型说明符> const <数组名>[<大小>]…
或
const <类型说明符> <数组名>[<大小>]…
例如:
int const a[5]={1, 2, 3, 4, 5};
2. 常对象
常对象是指对象常量,定义格式如下:
<类名> const <对象名>
或
const <类名> <对象名>
定义常对象时,同样要进行初始化,并且该对象不能再被更新,修饰符const能够放在类名后面,也能够放在类名前面。
常指针和常引用
1. 常指针
使用const修饰指针时,由于const的位置不同,而含意不同。下面举两个例子,说明他们的区别。
下面定义的一个指向字符串的常量指针:
char * const prt1 = stringprt1;
其中,ptr1是个常量指针。因此,下面赋值是非法的。
ptr1 = stringprt2;
而下面的赋值是合法的:
*ptr1 = "m";
因为指针ptr1所指向的变量是能够更新的,不可更新的是常量指针ptr1所指的方向(别的字符串)。
下面定义了一个指向字符串常量的指针:
const * ptr2 = stringprt1;
其中,ptr2是个指向字符串常量的指针。ptr2所指向的字符串不能更新的,而ptr2是能够更新的。因此,
*ptr2 = "x";
是非法的,而:
ptr2 = stringptr2;
是合法的。
所以,在使用const修饰指针时,应该注意const的位置。定义一个指向字符串的指针常量和定义一个指向字符串常量的指针时,const修饰符的位置不同,前者const放在*和指针名之间,后者const放在类型说明符前。
2. 常引用
使用const修饰符也能够说明引用,被说明的引用为常引用,该引用所引用的对象不能被更新。其定义格式如下:
const <类型说明符> & <引用名>
例如:
const double & v;
在实际应用中,常指针和常引用往往用来作函数的形参,这样的参数称为常参数。
在C 面向对象的程式设计中,指针和引用使用得较多,其中使用const修饰的常指针和常引用用得更多。使用常参数则表明该函数不会更新某个参数所指向或所引用的对象,这样,在参数传递过程中就无需执行拷贝初始化构造函数,这将会改善程式的运行效率。
下面举一例子说明常指针作函数参数的作法。
#include const int N = 6; void print(const int *p, int n); void main() { int array[N]; for (int i=0; i print(array, N); } void print(const int *p, int n) { cout<<"{"<<*p; for (int i=1; i cout<<"}"< |
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash