C++基本语法——const和引用

2020-04-05  本文已影响0人  三棱镜的世界

const关键字

由const修饰的类型只能初始化一次,之后只能读取,不能修改,在java中为final更贴切其本意

const double pi = 3.1415926

引用类型

基本意义

对下面这段代码:

int a = 5;
int &b = a;

设a的地址为0x400000,那么b的准确意义就是,放在0x400000地址上的一个int类型对象。

这里面包括了两重含义:

引用与指针的差别

关于第二点有下列解释:

string str1="a";
string str3="b";
string &str2=str1;
str2=str3;
第二点解释
我们发现对String&型变量赋值,str2=str1使得str2变量作为str1的别名,已经映射了地址OX0030fc4,它不能再映射其它地址

const int&int&

int&映射的地址只能有一次,就是上面的第二点,本质上是一个常量指针,指向的地址不能变,内容可变
const int&是在int&的基础上要求引用地址不能变,内容也不可变

const和指针

int*const p;//读作p为常量,是指针,指向int,所以p为指向int的常量指针, p不可修改
int const *p;//p为指针,指向常量,为int,所以p为指向int常量的指针, *p不可修改
int ** const p;  //p为常量,指向指针,指针指向int,所以p为指向int型指针的常量指针,p不可修改
int const**p;   //p为指针,指向指针,指针指向常量int,所以p为指针,指向一个指向int常量的指针, **p为int,不可修改
int * const *p ;  //p为指针,指向常量,该常量为指针,指向int,所以p为指针,指向一个常量指针,*p为指针,不可修改
int ** const *p;  //p为指针,指向常量,常量为指向指针的指针,p为指针,指向常量型指针的指针,*p为指向指针的指针,不可修改
int * const **p;  //p为指针,指向一个指针1,指针1指向一个常量,常量为指向int的指针,即p为指针,指向一个指向常量指针的指针, **p为指向一个int的指针,不可修改
上一篇 下一篇

猜你喜欢

热点阅读