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...

面试题 相关文章推荐
线程的基本概念、线程的基本状态以及状态之间的关系
Oct 26 面试题
新电JAVA笔试题目
Aug 31 面试题
SQL Server面试题
Apr 04 面试题
第一范式(1NF)、第二范式(2NF)和第三范式(3NF)之间的区别是什么?
Apr 28 面试题
介绍一下OSI七层模型
Jul 03 面试题
在C#中如何实现多态
Jul 02 面试题
Linux机考试题
Oct 16 面试题
GWT的应用有哪两种部署模式
Dec 21 面试题
Ajax的优点和缺点
Nov 21 面试题
现在输入n个数字,以逗号,分开;然后可选择升或者降序排序;按提交键就在另一页面显示按什么排序,结果为,提供reset
Nov 09 面试题
如何清空Session
Feb 23 面试题
用JAVA实现一种排序,JAVA类实现序列化的方法(二种)
Apr 23 面试题
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
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
PHP开发APP端微信支付功能
2017/02/17 PHP
在PHP 7下安装Swoole与Yar,Yaf的方法教程
2017/06/02 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
javascript 进阶篇2 CSS XML学习
2012/03/14 Javascript
JavaScript 更严格的相等 [译]
2012/09/20 Javascript
为指定的元素添加遮罩层的示例代码
2014/01/15 Javascript
jQuery+formdata实现上传进度特效遇到的问题
2016/02/24 Javascript
PassWord输入框代码分享
2016/06/07 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
js轮播图无缝滚动效果
2017/06/17 Javascript
iframe高度自适应及隐藏滚动条的实例详解
2017/09/29 Javascript
AngularJS中下拉框的高级用法示例
2017/10/11 Javascript
React操作真实DOM实现动态吸底部的示例
2017/10/23 Javascript
使用JS获取页面上的所有标签
2018/10/18 Javascript
vue 集成jTopo 处理方法
2019/08/07 Javascript
element-ui tooltip修改背景颜色和箭头颜色的实现
2019/12/16 Javascript
[08:47]DOTA2每周TOP10 精彩击杀集锦vol.6
2014/06/25 DOTA
[50:21]Liquid vs Winstrike 2018国际邀请赛小组赛BO2 第二场
2018/08/19 DOTA
Python实现端口复用实例代码
2014/07/03 Python
python读取json文件并将数据插入到mongodb的方法
2015/03/23 Python
python中self原理实例分析
2015/04/30 Python
Python中使用urllib2模块编写爬虫的简单上手示例
2016/01/20 Python
tensorflow模型继续训练 fineturn实例
2020/01/21 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
校本教研工作制度
2014/01/22 职场文书
社区安全检查制度
2014/02/03 职场文书
腾讯广告词
2014/03/19 职场文书
《果园机器人》教学反思
2014/04/13 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
个人培训总结
2015/03/05 职场文书
学籍证明模板
2015/06/18 职场文书
大学运动会通讯稿
2015/07/18 职场文书
化工生产实习心得体会
2016/01/22 职场文书
MySQL系列之十一 日志记录
2021/07/02 MySQL