1. 指针两个变量之间的关系是什么,T *a,*b = a;
  2. 引用两个变量之间的关系是什么,T *a,* &b = a
  3. delete后堆上数据有没有回收怎么判断?
  4. 类的函数中可以使用delete this吗?

引用

一般类型引用格式是:T a,&b = a表示变量a,b指向了同一块内存区域。可以使用如下方式验证

    printf("%x\n",&a);
    printf("%x\n",&b);

指针类类型的引用:

T *a,*b = a 在内存中有两块内存区域。

T *a,*&b = a 内存中有一块内存区域

int *a = new int 在堆上申请一块内存区域,地址赋值给a。

delete a 回收a所指向的堆上的内存。但是a == NULL不一定成立

指针、delete、new

内存使用的基本规则:

谁使用谁回收