不安全代码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

浙公网安备 33010602011771号