温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#固定指针是什么

发布时间:2021-07-16 01:24:37 来源:亿速云 阅读:133 作者:chen 栏目:编程语言

本篇内容主要讲解“C#固定指针是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#固定指针是什么”吧!

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#固定指针是什么”有了更深的了解,不妨来实际操作一番吧!这里是亿速云网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI