C#-关于指针使用(不安全代码)

一、说明

C#中要使用指针,

1、配置:Vsual Studio双击解决方案打开项目属性,

                进入Build生成标签页,

                勾选允许不安全代码;

2、环境:必须在unsafe修饰符标记的不安全代码块中;

二、使用

例1:标记整个方法为不安全代码

示例代码:

    public static unsafe void Main()
    {
        string myname="Auston";
        string* p=&myname;
        Console.WriteLine("myname:{0}",*p);
        Console.WriteLine("Adress:{0}",(int)p);
    }

生成:C#-关于指针使用(不安全代码)_第1张图片 

例2:标记方法中的一部分代码块为不安全代码

fixed语句作用:只用于不安全上下文,

                         防止GC(垃圾回收器)重定位可移动变量,

                         用于创建固定大小的缓存区;

                         指针地址固定,通过指针访问数组时,会移动指针位置,若被GC重定位,就会成为野指针;

示例代码:

    public static void Main()
    {
        string[] students = { "xiaohua", "xiaohong", "xiaoming" };
        unsafe
        {
            fixed (String* ptr = students)
                for (int i = 0; i < 3; i++)
                {
                    Console.WriteLine("student[{0}]:{1}", i, *(ptr + i));
                    Console.WriteLine("Address:{0}", (int)(ptr + i));
                }
        }
    }

 生成:C#-关于指针使用(不安全代码)_第2张图片

你可能感兴趣的:(C#基础与进阶,c#,开发语言)