const引用和const指针

1、重点:常量类型是基础
     const 类型  变量
     类型 const  变量

举例: const int r=1;
       int const r =1;

类型包含指针类型,注意不包含引用类型。


2、const修饰引用
const是限定符号,表示后面变量对象不可变化(必须在初始化时候指定植)。无论是"const引用"还是"const 指针"都是针对const变量的。若没有这两类,而使用单独"引用"或者"指针",则会导致对const变量的改变,为避免此情况,编译器用“const引用” 和“const指针”。重点理解const类型变量,都是以他展开的。

引用 是变量别名,不可改变,所以必须在初始化时候指定初值

“const引用”是何意思呢?
显然,是指通过这个“const引用"来指向const类型变量。而不可通过该引用修改变量。注意”引用“本身也不能改变。这点和 指向const变量的const指针类似

const位置(替换原则)
const int a =2 ;
const   int  &r2 = a;
int     const  &r3 = a;
"const int" 还是 "int const" 都表示常量int.故次序都可以可根据自己习惯。cosnt和类型紧密结合,前后都可。注意指针和引用一起使用时候可能会有歧义,指针类型需要类型和* 来表示,不同于单独的类型,结合上会存在问题。

3、const修饰指针
指向常量的指针  int  const * p; 或者 const int * p;
             "const int" 还是 "int const" 都表示常量int.故次序都可以可根据自己习惯
常量指针  int* const p;
const位置以*左右为区分

4、const、引用和指针结合。
注意下面形式
int a = 2;
int* const  &ref = &a; (注意不可这样const int*   &ref = &a 。因为 const int类型 表示常量了,而此是int型,故不可改变次序,见上面的替换原则分析)。(指针为:int*)

const int b = 3;
const int * const &ref = &b; (指针为:const int*,指向常量的指针,以引用为主)
也可 int const *  const  &ref = &a;

猜你喜欢

转载自q2768717191.iteye.com/blog/2262257