设为首页】 【加入收藏】 【网站地图】 【商品折扣
娱乐一生 娱乐明星
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
首页  |  java  |  .NET  |  C/C++  |  网页技术  |  php  |  asp  |  delphi  |  VC  |  VB开发  |  游戏开发  |  软件工程  |  Power Builder  |  Linux开发  |  Windows开发技巧
当前位置:首页 >> C++技术资料 >> C++常类型(co t)

C++常类型(co t) -

  常类型是指使用类型修饰符co t说明的类型,常类型的变量或对象的值是不能被更新的。因此,定义或说明常类型时必须进行初始化。

  一般常量和对象常量

  1. 一般常量

  一般常量是指简单类型的常量。这种常量在定义时,修饰符co t可以用在类型说明符前,也可以用在类型说明符后。如:

  int co t x=2;

  或

  co t int x=2;

  定义或说明一个常数组可采用如下格式:

  <类型说明符> co t <数组名>[<大小>]…

  或者

  co t <类型说明符> <数组名>[<大小>]…

  例如:

  int co t a[5]={1, 2, 3, 4, 5};

  2. 常对象

  常对象是指对象常量,定义格式如下:

  <类名> co t <对象名>

  或者

  co t <类名> <对象名>

  定义常对象时,同样要进行初始化,并且该对象不能再被更新,修饰符co t可以放在类名后面,也可以放在类名前面。

  常指针和常引用

  1. 常指针

  使用co t修饰指针时,由于co t的位置不同,而含意不同。下面举两个例子,说明它们的区别。

  下面定义的一个指向字符串的常量指针:

  char * co t prt1 = stringprt1;

  其中,ptr1是一个常量指针。因此,下面赋值是非法的。

  ptr1 = stringprt2;

  而下面的赋值是合法的:

  *ptr1 = "m";

  因为指针ptr1所指向的变量是可以更新的,不可更新的是常量指针ptr1所指的方向(别的字符串)。

  下面定义了一个指向字符串常量的指针:

  co t * ptr2 = stringprt1;

  其中,ptr2是一个指向字符串常量的指针。ptr2所指向的字符串不能更新的,而ptr2是可以更新的。因此,

  *ptr2 = "x";

  是非法的,而:

  ptr2 = stringptr2;

  是合法的。

  所以,在使用co t修饰指针时,应该注意co t的位置。定义一个指向字符串的指针常量和定义一个指向字符串常量的指针时,co t修饰符的位置不同,前者co t放在*和指针名之间,后者co t放在类型说明符前。

  2. 常引用

  使用co t修饰符也可以说明引用,被说明的引用为常引用,该引用所引用的对象不能被更新。其定义格式如下:

  co t <类型说明符> &am  <引用名>

  例如:

  co t double &am  v;

  在实际应用中,常指针和常引用往往用来作函数的形参,这样的参数称为常参数。

  在C++面向对象的程序设计中,指针和引用使用得较多,其中使用co t修饰的常指针和常引用用得更多。使用常参数则表明该函数不会更新某个参数所指向或所引用的对象,这样,在参数传递过程中就不需要执行拷贝初始化构造函数,这将会改善程序的运行效率。

  下面举一例子说明常指针作函数参数的作法。

#include
co t int N = 6;
void print(co t int *p, int n);

void main()
{
int array[N];
for (int i=0; i<  i++)
ci gt gt;array[i];
print(array, N);
}

void print(co t int *p, int n)
{
cout< lt;"{"< lt;* 
for (int i=1; i<  i++)
cout< lt;","< lt;*(p+i);
cout< lt;"}"< }


 

 



 

娱乐图摘

更多 >>

靓丽清纯美女meimei

美女私房全裸照
导演劝女演员脱衣服(视频)

大胆火辣人体艺术写真(图)

黑丝妹妹热辣诱惑-丝袜美女妹妹

PLMM 漂亮妹妹图集-妹妹图库

全球美女图库-美女集中营

52MM 我爱漂亮妹妹-制服妹妹诱惑

图王图库-世界美女明星图片资料库
美女写真集锦

激情两性-解密性生活
浴室MM湿身内衣诱惑
邻家小妹洗澡被偷拍(视频)

热点文章

更多

· C++设计模式之Singleton
· Singleton的C++实现 及相关问题
· C++对象布局及多态实现之成员函数的调用
· 如何在RichEdit中实现上标下标
· C++箴言:谨慎考虑资源管理类的拷贝行为
· Visual C++实现Flash动画播放
· 内存陷阱 驯服C++中的野指针
· C/C++数组名与指针区别深入探索
· VC#2005快速入门之使用do语句
· 数据结构学习(C++)之栈和队列

热点文章

更多