C++ 引用和动态内存分配
引用
1.类型名后加**&**,如
int &a = b;
- 引用必须初始化成引用某个变量,之后不会改变
- 某个变量的引用,等价于该变量,相当于一个别名
- 引用可以作为函数的返回值,从而修改函数的返回值,如
int &SetValue() {return n;}
SetValue() = 40;
2.常引用const T &
- 不能通过常引用修改其引用内容
- 与非常引用 T & 是不同的类型,但可以通过强制类型转换来实现非常引用给常引用赋值(反过来不行)
const关键字的用法
1.定义常量
const int MAX_VAL = 23;
类似define,但可以规定变量类型,更好
2.定义常量指针
不能通过常量指针修改其指向的内容(但可以通过其他方式修改,也可以指向其他变量)
作用:函数参数为常量指针时,可避免函数内部修改其指向的内容。
3.定义常引用
即上述引用部分第2点
动态内存分配
1.new运算符
(1)分配一个变量
int *p = new int;
(2)分配一个数组
int *p = new int[10];
注意:new运算符返回值类型为 T *
2.delete运算符
与new搭配使用,用new动态分配的空间,一定要用delete进行释放
注意:
- 一片空间只能被delete一次
- 释放数组要加"[ ]",否则可能释放不完全,导致空间利用不足,例如:
int *p = new int[20];
delete []p;
https://www.bilibili.com/video/BV1Ns411n7ui?p=4&spm_id_from=pageDriver 程序设计与算法(三)C++面向对象程序设计