不安全代码unsafe

一、定义

使用指针前,请用unsafe 声明下,可以使类、方法,成员,类全局变量和代码段,但不能修饰成员函数内部的局部变量

当一个代码块使用 unsafe 修饰符标记时,C# 允许在函数中使用指针变量。不安全代码或非托管代码是指使用了指针变量的代码块。

二、有效指针声明

1 int *ip; // 指向一个整数
2 double *dp; // 指向一个双精度数
3 float *fp; // 指向一个浮点数
4 char *ch; // 指向一个字符

三、实例对比

 1 class Program
 2     {
 3         static unsafe void Main(string[] args)
 4         {
 5             int var = 20;
 6             int* p = &var;
 7             Console.WriteLine("Data is: {0} ",  var);
 8             Console.WriteLine("Address is: {0}",  (int)p);
 9             Console.ReadKey();
10         }
11     }

输出结果:

Data is: 20
Address is: 77128984
 1 class Program
 2    {
 3       public static void Main()
 4       {
 5          unsafe
 6          {
 7             int var = 20;
 8             int* p = &var;
 9             Console.WriteLine("Data is: {0} " , var);
10             Console.WriteLine("Data is: {0} " , p->ToString());
11             Console.WriteLine("Address is: {0} " , (int)p);
12          }
13          Console.ReadKey();
14       }
15    }

输出结果:

Data is: 20
Data is: 20
Address is: 77128984
 
posted @ 2022-11-30 14:04  末叶da  阅读(82)  评论(0)    收藏  举报