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面试题附答案
Jun 05 面试题
String和StringBuffer的区别
Aug 13 面试题
Java中实现多态的机制是什么?
Dec 07 面试题
JSF如何进行表格处理及取值
Aug 06 面试题
static函数与普通函数有什么区别
Dec 25 面试题
struct和class的区别
Nov 20 面试题
将一个文本文件的内容按倒序打印出来
Jan 05 面试题
软件工程师面试题
Jun 25 面试题
配置管理计划的主要内容有哪些
Jun 20 面试题
一份软件工程师的面试试题
Feb 01 面试题
请说出以下代码输出什么
Aug 30 面试题
火山动力Java笔试题
Jun 26 面试题
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
松下Panasonic RF-B65电路分析
2021/03/02 无线电
Linux环境下php实现给网站截图的方法
2016/05/03 PHP
event.srcElement+表格应用
2006/08/29 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
js 实现无干扰阴影效果 简单好用(附文件下载)
2009/12/27 Javascript
javascript 文章截取部分无损html显示实现代码
2010/05/04 Javascript
JavaScript 通过模式匹配实现重载
2010/08/12 Javascript
js面向对象 多种创建对象方法小结
2012/05/21 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
JS动态修改iframe高度和宽度的方法
2015/04/01 Javascript
学习JavaScript正则表达式
2015/11/13 Javascript
基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用
2016/05/12 Javascript
ionic中列表项增加和删除的实现方法
2017/01/22 Javascript
利用js查找数组中指定元素并返回该元素的所有索引示例
2017/03/29 Javascript
View.post() 不靠谱的地方你知道多少
2017/08/29 Javascript
简单实现vue中的依赖收集与响应的方法
2019/02/18 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
vuex实现数据状态持久化
2019/11/11 Javascript
Python time模块详解(常用函数实例讲解,非常好)
2014/04/24 Python
PHP魔术方法__ISSET、__UNSET使用实例
2014/11/25 Python
Python 模块EasyGui详细介绍
2017/02/19 Python
Python3实现的判断回文链表算法示例
2019/03/08 Python
python递归法实现简易连连看小游戏
2020/03/25 Python
python生成特定分布数的实例
2019/12/05 Python
Python %r和%s区别代码实例解析
2020/04/03 Python
Python之变量类型和if判断方式
2020/05/05 Python
html5超简单的localStorage实现记住密码的功能实现
2017/09/07 HTML / CSS
Perfumetrader荷兰:香水、化妆品和护肤品在线商店
2017/09/15 全球购物
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
医学检验专业个人求职信范文
2013/12/04 职场文书
机械专业技术员求职信
2014/06/14 职场文书
调研座谈会发言材料
2014/08/23 职场文书
Python 绘制多因子柱状图
2022/05/11 Python
MySQL下载安装配置详细教程 附下载资源
2022/09/23 MySQL