C#固定指针
在语句块前输入关键字fixed,将会告诉CLR块内的对象不能重定位,这样CLR就不会重定位指针指向的数据存储位置。因此在C#固定指针时,使用关键字fixed将能阻止程序运行时无效指针的产生。让我们看看它是如何工作的:
- using System;
- class CData
- {
- public int x;
- }
- class CProgram
- {
- unsafe static void SetVal(int *pInt)
- {
- *pInt=1979;
- }
- public unsafe static void Main()
- {
- CData d = new CData();
- Console.WriteLine("Previous value: {0}", d.x);
- fixed(int *p=&d.x)
- {
- SetVal(p);
- }
- Console.WriteLine("New value: {0}", d.x);
- }
- }
我们在这段代码里通过一个fixed块,将CData对象数据成员(域)x的地址赋给了一个整数型指针p。当fixed块中的语句被执行时,这个指针p将一直指向原来的那块内存区域,因为CLR已被指示暂时冻结这个变量直到该fixed块执行完毕。一旦fixed块执行完毕,这个对象就又能被CLR 重新定位了。
以上就是C#固定指针编程的介绍,关键是要说明语句块是unsafe并fixed的。希望能因此提高你对C#固定指针使用的知识!
网站名称:C#固定指针简单介绍
网站地址:http://www.shufengxianlan.com/qtweb/news20/322920.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联