C#如何使用指针

概述

 

     为了保持类型安全,默认情况下,C# 不支持指针运算。不过,通过使用 unsafe 关键字,可以定义可使用指针的不安全上下文。有关指针的更多信息,请参见主题指针类型

 

注意

    在公共语言运行库 (CLR) 中,不安全代码是指无法验证的代码。C# 中的不安全代码不一定是危险的,只是其安全性无法由 CLR 进行验证的代码。因此,CLR 只对在完全受信任的程序集中的不安全代码执行操作。如果使用不安全代码,由您负责确保您的代码不会引起安全风险或指针错误。有关更多信息,请参见安全性与 C#

 

不安全代码具有下列属性:

  • 方法、类型和可被定义为不安全的代码块。

  • 在某些情况下,通过移除数组界限检查,不安全代码可提高应用程序的性能。

  • 当调用需要指针的本机函数时,需要使用不安全代码。

  • 使用不安全代码将引起安全风险和稳定性风险。

  • 在 C# 中,为了编译不安全代码,必须用 /unsafe 编译应用程序。

例如

    public static void Main()
    {

        unsafe {
            int g = 12;
            int* p = &g;
            
            Console.WriteLine(*p + "----");
        }


    }

 

但这样默认是编译不过的

修改项目属性

右际项目-》属性-》配置属性-》生成-》允许不安全代码块=true

 

 运行结果

 

12----

请按任意键继续. . .

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值