C#可否对内存进行直接的操作


Posted in 面试题 onFebruary 26, 2015
C#可以直接对内存进行操作。但是默认情况下,为了保持类型安全,C#不支持指针运算。不过,通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文。在不安全的上下文中,类型可以是指针类型以及值类型或引用类型。指针类型声明具有下列形式之一:
unmanaged type* identifier;
void* identifier;
参数说明:
unmanaged type:
sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal 或 bool。
任何枚举类型。
任何指针类型。
仅包含非托管类型的字段的任何用户定义的结构类型。
identifier
指针变量名称。
指针类型不继承 object,并且指针类型与 object 之间不存在转换。此外,装箱和取消装箱不支持指针。但是,允许在不同指针类型之间以及指针类型与整型之间进行转换。
当在同一个声明中声明多个指针时,* 仅与基础类型一起使用,而不是作为每个指针名称的前缀。例如:
int* p1, p2, p3; // Ok
int *p1, *p2, *p3; // Invalid in C#
因为垃圾回收器不知道关于指针的任何信息,指针不能指向引用或包含引用的结构,但知道关于引用的信息。
myType* 类型的指针变量的值是 myType 类型的变量的地址。
下面是指针类型声明的示例:
示例 说明
int* p p 是指向整数的指针
int** p p 是指向整数的指针的指针
int*[] p p 是指向整数的指针的一维数组
char* p p 是指向字符的指针
void* p p 是指向未知类型的指针
因为C#为了提高安全型,默认是运行在托管代码下的,在我们正常的企业mis开发中很少会有用到非托管代码的情况,致使大部分c#初学者误以为C#不能直接操作内存。当然,面试时很少会有人问起这个,这个我们只需要做简单的了解就可以了,如果不是开发的需要,没有必要深究。

Tags in this post...

面试题 相关文章推荐
PHP中如何创建和修改数组
May 02 面试题
怎么处理XML的中文问题
Mar 26 面试题
我想声明一个指针并为它分配一些空间, 但却不行。这些代码有什么 问题?char *p; *p = malloc(10);
Oct 06 面试题
统计每一学生的平均成绩
Jun 06 面试题
Oracle里面常用的数据字典有哪些
Feb 14 面试题
什么是触发器(trigger)? 触发器有什么作用?
Sep 18 面试题
上海某公司.net方向笔试题
Sep 14 面试题
如何为DataGridView添加一个定制的Column Type
Jan 21 面试题
为什么要做架构设计
Jul 08 面试题
介绍一下Java的事务处理
Dec 07 面试题
我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
Mar 30 面试题
中科前程Java笔试题
Nov 20 面试题
C#中有没有静态构造函数,如果有是做什么用的?
Jun 04 #面试题
一套C#面试题
Oct 09 #面试题
在C#中如何实现多态
Jul 02 #面试题
使用C#编写创建一个线程的代码
Jan 22 #面试题
编程实现去掉XML的重复结点
May 28 #面试题
如何在C# winform中异步调用web services
Sep 21 #面试题
静态成员和非静态成员的区别
May 12 #面试题
You might like
虫族 Zerg 热键控制
2020/03/14 星际争霸
解析PHP计算页面执行时间的实现代码
2013/06/18 PHP
PHP模板引擎Smarty自定义变量调解器用法
2016/04/11 PHP
php使用curl伪造来源ip和refer的方法示例
2018/05/08 PHP
PHP自定义递归函数实现数组转JSON功能【支持GBK编码】
2018/07/17 PHP
深入聊聊Array的sort方法的使用技巧.详细点评protype.js中的sortBy方法
2007/04/12 Javascript
javascript 节点遍历函数
2010/03/28 Javascript
ExtJS Ext.MessageBox.alert()弹出对话框详解
2010/04/02 Javascript
jquery下实现overlay遮罩层代码
2010/08/25 Javascript
基于jquery自定义图片热区效果
2012/07/21 Javascript
js判断undefined变量类型使用typeof
2013/06/03 Javascript
javascript实例分享---具有立体效果的图片特效
2014/06/08 Javascript
Angular 应用技巧总结
2016/09/14 Javascript
基于jQuery代码实现圆形菜单展开收缩效果
2017/02/13 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
jQuery实现简单飞机大战
2020/07/05 jQuery
[43:58]DOTA2上海特级锦标赛C组败者赛 Newbee VS Archon第二局
2016/02/27 DOTA
举例详解Python中yield生成器的用法
2015/08/05 Python
Python实现打印螺旋矩阵功能的方法
2017/11/21 Python
儿童学习python的一些小技巧
2018/05/27 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
pytorch中获取模型input/output shape实例
2019/12/30 Python
canvas进阶之如何画出平滑的曲线
2018/10/15 HTML / CSS
英国最大的化装舞会服装网站:Fancydress.com
2017/08/15 全球购物
阿迪达斯墨西哥官方网站:adidas墨西哥
2017/11/03 全球购物
英国受欢迎的运动鞋和街头服装商店:Footasylum
2018/06/12 全球购物
餐厅经理岗位职责范本
2014/02/17 职场文书
葬礼司仪主持词
2014/03/31 职场文书
爱护公共设施演讲稿
2014/09/13 职场文书
技术股份合作协议书
2014/10/05 职场文书
刑事辩护授权委托书格式
2014/10/13 职场文书
信用卡催款律师函
2015/05/27 职场文书
退货证明模板
2015/06/23 职场文书
公司员工宿舍管理制度
2015/08/07 职场文书
课题研究阶段性总结
2015/08/13 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书