复合数据类型
(1)指针
A.What(什么是指针)
用于存放对象地址的复合数据类型
B.Which(有哪些指针)
空指针:
int *p = nullptr; int *p = 0;//(不指向任何对象)
void *:
void *:double dAngle = -180.0; void * p = &dAngle;//(万能指针,可指向任意类型的指针)
底层指针:
const int a=10;
const int *p = &a; //指针指向的是一个常量
顶层指针:
int a = 10;
int const *p=&a; //指针本身就是一个常量类型的指针,不能被重新赋地址
(2)引用
A.What(什么是引用)
引用是变量的别名,在定义的时候就一定要被初始化。
B.How(如何使用)
int a = 10;
int &ra = a;
(3)指针和引用的关系
核心思想:指针是一个对象,而引用不是对象
A.对立性
初始化:指针可以不进行初始化;引用一定要进行初始化
重新赋值:指针可以被重新赋值;引用被初始化后不允许被重新赋值
B.统一性
两者都是对其它对象的间接访问
================================================================================
如果读者对C++感兴趣,欢迎阅读笔者关于在学习C++过程中的关于其知识点的总结系列,入口如下:
C++知识点总结全系列文章索引:
【C++知识点总结全系列 (01)】:数据类型、数据类型转换和变量
【C++知识点总结全系列 (02)】:C++中的语句、运算符和表达式详细总结
【C++知识点总结全系列 (03)】:函数(函数参数传递、可变参数、函数返回值等详细介绍)
【C++知识点总结全系列 (04)】:C++类的详细总结与分析
【C++知识点总结全系列 (05)】:IO 类的详细总结和分析
【C++知识点总结全系列 (06)】:STL六大组件总结- 配置器、容器、迭代器、适配器、算法和仿函数
【C++知识点总结全系列 (07)】:模板与泛型编程详细总结与分析
【C++知识点总结全系列 (08)】:面向对象编程OOP