概述
为了保持类型安全,默认情况下,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----
请按任意键继续. . .
相关推荐
C#中使用指针
C#中使用指针源程序,我想许多C程序员不愿意学习Java的原因就是Java不支持指针,但是现在类似于Java的C#却已经支持了指针,你可以使用unsafe关键字来告诉编译器下面的函数或者代码是不安全的。一旦你使用了unsafe,...
C#结构体指针的定义及使用详解
在 C# 中很少需要使用指针,但仍有一些需要使用的情况。例如,在下列情况中使用允许采用指针的不安全上下文是正确的: 处理磁盘上的现有结构 涉及内部包含指针的结构的高级 COM 或平台调用方案 性能关键代码 不鼓励在...
C++ 与C#之间的指针参数传递,实现无限量数据的传递,轻松无压力,方便在C++里面获取或者从C#传递数据到C++的动态库调用内。
C# csharp指针 案例
主要介绍了C#通过指针实现快速拷贝的方法,涉及C#指针的相关使用技巧,需要的朋友可以参考下
简单介绍了C#中this指针的用法。
C#指针偏移事例档说明C#指针偏移事例档说明
C#指针简单运用
例如:在C#中也可以使用指针,但在使用前必须声明是不安全的。在C#中,为了提供类似C++中函数指针的功能,微软提出了委托和事件的概念。这里有一个很奇怪的事情,那就是当牵涉到指针是,对于初学者而言,似乎很费解...
C#指针 黑白虑镜效果 对初学C# 使用 unsafe 模式使用指针不太了解的和 对图片每个点进行修改处理不太了解的可以 看看
运用C#实现的指针时钟,运用了一些简单的数学知识,对于初学者来说是很好的例子
本章介绍内存管理和内存访问的各个方面。尽管运行库负责为程序员处理大部分内存管理工作,但程序员仍必须理解内存管理的工作原理,了解如何处理未...● C#中使用指针的语法 ● 如何使用指针实现基于堆栈的高性能数组
用C#语言实现的指针时钟,可以自动获取当前时间,并正常运行
关于C#的指针时钟,考试题目,2. 利用C#图形图像处理类库,根据系统时间实现一个时钟应用,模拟分针、时针和秒针走动,
在C#中,通过使用unsafe关键字,可以声明不安全代码块,从而允许使用指针。例如: unsafe { int x = 10; int* ptr = &x; Console.WriteLine(*ptr); // 输出 10 } 在使用指针时,需要格外小心,因为它们可以绕过C#的...
我用C#做的一个指针表盘程序,可用作电压电流及速度、温度表盘显示,C#工具箱缺这个东西,源码编译通过,执行直接输出表盘,实例中做了一个随机函数显示如何移动指针。
指针式仪表的识别,表盘定位、指针定位、读数等功能,基于C#实现
帮助朋友学习C#更多知识,提供更广的技术