A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 重新开始 中级黑马   /  2013-10-22 15:52  /  2384 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 重新开始 于 2013-10-23 10:02 编辑

C#可否对内存进行直接的操作?如果能原理过程是什么?

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1 同学给你加分了!好好学习!蔡蔡和叶叶在黑马.

查看全部评分

7 个回复

倒序浏览
可以的,
c#中是有指针的,虽然很少用到,虽然使用时要加上"unsafe"
只针对这个问题,c#是可以的

可是使用时要加上"unsafe",这已经是他从c++过来的一个转变了

希望能帮助你!

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
这个问题比较难回答,也是个很大的问题。我只能大概的说一下了。C#是可以对内存进行直接操作的,虽然很少用到指针,但是C#是可以使用指针的,在用的时候需要在前边加unsafe,,在.net中使用了垃圾回收机制(GC)功能,它替代了程序员,不过在C#中不可以直接使用finalize方法,而是在析构函数中调用基类的finalize()方法。

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
可以的,unsafe范围内,我猜应该是告诉CLR我要直接用指针操作内存,你别来帮我托管,我自己管.
回复 使用道具 举报
本帖最后由 §風過無痕§ 于 2013-10-22 23:16 编辑

MSDN官方说法:
为了保持类型安全,默认情况下,C# 不支持指针算法。不过,通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文。有关指针的更多信息,请参见主题指针类型。http://msdn.microsoft.com/zh-cn/library/vstudio/y31yhkeb.aspx

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
C#不直接提供给程序员控制内存的接口吧,都是封装好的,和JVM一样又一个垃圾回收机制。
主要是为了让程序员更多的去关注功能的实现。

评分

参与人数 1技术分 +1 收起 理由
追溯客 + 1

查看全部评分

回复 使用道具 举报
如问题被解决,请及时把分类设为"已解决",黑马有你更精彩!
回复 使用道具 举报

同学给你加分了!好好学习!蔡蔡和叶叶在黑马等着你!黑马有你更精彩!快点为了当土豪努力吧!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马