C++中const小结

来源:互联网 发布:淘宝店基础版页头全屏 编辑:程序博客网 时间:2024/05/17 09:37

非指针const:

① const TYPE 常量标志符=常量表达式;

② TYPE const  常量标志符=常量表达式;  常量表达式可以是常数,或者不带函数调用的简单表达式,因为系统在编译阶段对标识常量求值,所以不能调用函数。因为常量在定义后就不可以修改了,所以必须在定义的时候初始化。

③ 对于一个非指针的类型TYPE无论怎么写,都是一个含义即常量标识符的值不可变。

指针const:

对于指针类型有以下3类:

1、指向常量的指针:const 类型*指针OR 类型const*指针此处const在关联类型之前或者紧跟关联类型后面,表示约束所指对象访问。指向常量的指针可以获取变量或者常量的地       址,但是限制用指针间址访问对象的方式为“只读”。例如:int var=23;   const int MAX=100;int *p; const int *P1_const; int const *P2_const;P1_const=&var;()      P2_const=&MAX;()*P1_const=100;()  *P2_const=100;(错) C++为了保证标识常量的只读性,规定常量的地址只能赋给指向常量的指针。如:p=&MAX是错误的。

 

2指针常量:类型*const 指针,指针常量只能在定义的时候初始化,定义后不可以修改,即不能改变指针的指向,但不影响所指对象的访问。例如:int var1=100,var2=200;

    int*const const_p1=&var1; const_p1=&var2;() *const_p1=var2()再如:const intMAX=1000;  int* const const_p2=&MAX()  因为标志常量只能赋给指向常量的指针,另一    方面const_p2是一个指针常量,也就是一旦她被初始化就不再可以指向其他东西,但是可以通过间址访问。

 

3、指向常量的指针常量:const 类型*const 指针OR 类型 const*const 指针其含义为指针本身和所指对象的值在定义后都限制为只读,不可以写。例如:int  var1=100, var2=300;

      const int MAX=1000;  const int *const p1=&var1;() int const *const p2=&MAX;() p1=&va2; () (不可以写指针变量)  *p2=600; () (不可以写指向指针的常量) var1=var2;          (对)      (不影响读写)

0 0
原创粉丝点击