C#高级编程学习笔记--------内存管理和指针

本章概要:

1.后台内存管理

值数据类型。引用数据类型。垃圾收集 ,释放未托管的资源(析构函数,IDISPOSABLE接口,实现该接口和析构函数)

不安全代码(unsafe),指针,使用指针优化性能

--------------------------------------------------------------------------------------------------------

分配内存方式:堆栈向上 堆向下

不希望指定他指向数据类型时候用VOID指针

结构指针:条件(结构不能包含任何引用类型)

类指针成员:不能创建任何指向类的指针,垃圾收集起不维护指针任何信息,只能维护所引用的信息,因此创建指向类的指针会使得垃圾收集器不能正常工作;但是由于大多数类都包含值类型的成员,可以为这些之类型成员城建指针,但是这需要一种特殊的语法(FIXED),X和f都是非托管资源,他们方在一个对象中存放在堆上,在垃圾收集的过程中,垃圾收集器会吧myclass移动到内存的一个新单元上,这样指针pl.pf就指向错误的内存地址,所以不能用这个方式(Myclass Myobject=new Myclass(); long *pl=&(myobject.x);pf=&(myobject.f);)只能通过FIXED告诉编垃圾收集器,类的实例的某些成员有指向他们的指针,在FIXED代码段内这些实例不能移动

例:

class

{

public long x;

public float f;

}

Myclass Myobject=new Myclass();

fixed(long *pObject=&(MyObject))

{

//do something here

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值