内存管理与指针

        这两天阅读了第11章——内存管理和指针。

        这个内容我以前从没有接触过,并且这章比较长,反复看了四遍,觉得有点懂了。指针是怎么回事?引用是一个类型的类型安全的指针?委托是方法的一个指针?

        值类型存储在堆栈上。引用类型的变量名存储在堆栈上,而其实例存储在堆栈上。

        垃圾收集一般有两种方法:一是析构函数;一是IDisposable接口的Disposable()方法。

        由于析构函数收集不用的资源具有不确定性,我们不知道什么时候垃圾收集器工作,所以对一些宝贵的资源,我们一般使用Disposable()方法释放资源。

        垃圾收集器会对托管资源进行收集,但是未托管的资源需要使用Disposable()方法进行收集。

        C#中使用关键字unsafe编写不安全的代码,而指针在C#中是不安全的,所以必须要在使用指针的地方使用unsafe。

        类,结构,方法的参数等都可以标记unsafe,但是局部变量不能标记。

       使用类型+*的语法来声明指针,比如声明一个整形指针int*;

       &表示“取地址”,即把一个值类型转换为指针,也成为寻址运算符。

       *表示“获取地址的内容”,与&相反,也成为“简介寻址运算符”或“取消引用运算符”。

       指针占用4个字节。

      不同指针之间可以进行显式的转换。

      指针的类型还可以是void。

      指针可以进行运算。

      sizeof运算符,它返回该类型占用的字节。

      可以声明结构指针,指针成员访问运算符为->。

      不可以声明类指针,但可以为类的值类型成员声明指针。在必须放在fixed(这里声明指针)块中。

      可以使用关键字stackalloc在堆栈上分配一定量的内存。

    

       

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值