指针与后端 | 青训营笔记

163 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第6 天

2.1.17 有常量指针 ****指针常量 ****常量引用 ****没有 引用常量 ⭐⭐⭐

1 、指针常量——指针类型的常量( int const p ***

本质上一个常量,指针用来说明常量的类型,表示该常量是一个指针类型的常量。在指针常量中,指针自身的值是一个常量,不可改变,始终指向同一个地址。在定义的同时必须初始化。用法如下:****

int a = 10, b = 20;

int * const p = &a;


p = 30; // p 指向的地址是一定的,但其内容可以修改***

2 、常量指针 —— 指向 常量 的指针( const int p int const p **

常量指针本质上是一个指针,常量表示指针指向的内容,说明该指针指向一个“常量”。在常量指针中,指针指向的内容是不可改变的,指针看起来好像指向了一个常量。用法如下:****

int a = 10, b = 20;

*const int p = &a;

p = &b; // 指针可以指向其他地址,但是内容不可以改变****


这是我参与「第五届青训营 」伴学笔记创作活动的第 6天

常量引用: const int& a


2.1.18 没有指向引用的指针,因为引用是没有地址的,但是有指针的引用 ⭐⭐⭐****


2.1.19c/c++ 中变量的作用域 ⭐⭐⭐⭐⭐****

全局变量,局部变量,静态局部变量,静态全局变量****

2.1.20 c++ 中类型转换机制?各适用什么环境? dynamic_cast 转换失败时,会出现什么情况? ⭐⭐⭐****

C++类型转换相关内容整理分析_sakeww的博客-CSDN博客


向下转型的时候, static_cast 是安全的, dynamic_cast 是不安全的****

RTTI Run-time Type identification 的简称,即:运行时类型识别。**
C++** 通过以下方式来支持 RTTI ****

typeid 运算符****

dynamic_cast 运算符****

dynamic_cast 运算符可以在执行期决定真正的类型,也就是说 expression 必须是多态类型****

进行上行转换(把派生类的指针或引用转换成基类表示): dynamic static 均安全****

下行转换: dynamic 会进行检验****