const引用和const指针 c++编程开发
程序员文章站
2022-06-16 11:47:52
...
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;
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;