1 new 类型或者new类型(初始值)
2 new类型【数组大小】
3 定位new,在指定位置分配空间new(指针)类型
4 new创建对象,返回对象地址,一般将返回的地址保存在指针变量中
intp=new int
5 new类型[数组大小]
分配指定类型和大小的数组,返回数组首地址
intp=new int[100]分配一个大小100的int数组,并返回首地址
6 不能对数组初始化,数组大小不必是常量,是数组元素的个数
7 释放new分配的单个对象
delete 指针;
释放new分配的数组
delete [] 指针;
8 引用
type & refvariable=leftvalue
9 引用必须初始化,初始值是一个有内存地址的对象
int ival = 100;
int &refVal = ival;
int &refVal2; //错
int &refVal3 = &ival; //错
int &refVal4 = 10; //错
10 引用的初始化和一般变量的初始化不同
一旦初始化完成,引用将和它的初始值对象一直绑定在一起
因为无法令引用重新绑定到另外一个对象,所以引用必须初始化
11
指针通过解引用(*)运算间接访问指向的对象
引用作为对象的别名,可以直接访问对象
int x, a, *pi;
pi = &x;
*pi = 30; // x=30
int &ri = a;
ri = 40; //a=40
12
有空指针
指针可以不指向任何对象,其值为0,表示空指针
没有空引用
引用必须指向一个对象,而且一直指向该对象,不存在“空”引用。
引用的值如果为0,表示它指向的单元值为0
13赋值
指针之间的相互赋值会改变指向关系
引用之间的相互赋值是它们指向的对象之间的赋值,引用关系本身并不改变
int x = 100, y = 20;
int *p1 = &x, *p2 = &y;
p1 = p2; // p1=&y, p1和p2都指向y
int &r1 = x, &r2 = y;
r1 = r2; // x = y, r1仍是x的引用
14
2020-03-18
最新推荐文章于 2020-07-07 22:58:44 发布