博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#使用指针
阅读量:5275 次
发布时间:2019-06-14

本文共 1387 字,大约阅读时间需要 4 分钟。

原则上,在C#中最好不用指针,更安全也更方便,但是有时使用指针是速度更快,这里简单介绍一下使用指针访问数组。

先在设置里允许可以使用不安全代码:

在使用指针时先在函数返回类型前声明该函数实际unsafe的,与C++不同,C#不能直接定义指针,只能放在fixed中,并且指针的有效域也只能在fixed程序段中。写了一小段代码访问数组元素,代码如下。arr1与arr2是两个整数数组,在fixed程序段中依次访问其中的元素。注意:使用指针是有风险的,与正常访问不同,系统少做了一些校验,这也是指针较快的原因,除非对效率有极高要求还是不建议使用指针的。指针的使用与C&C++类似(一般要开指针的对这两种语言都很熟,我就不班门弄斧了)。

1 class Program 2     { 3         static unsafe void Main(string[] args) 4         { 5             int[] arr1 = {
1,2,3,4,5}; 6 Console.WriteLine("arr1:"); 7 fixed (int* p = &arr1[0]) 8 { 9 //一维数组利用指针访问元素10 for (int i = 0; i < 5; i++)11 {12 Console.Write("->");13 Console.Write(*(p + i));14 }15 }16 17 Console.WriteLine();18 19 int[,] arr2 = {
{
1,2,3},{
4,5,6},{
7,8,9}};20 Console.WriteLine("arr2:");21 fixed (int* p = &arr2[0,0])22 {23 // 二维数组也可以顺序访问,同Cpp24 for (int i = 0; i < 9; i++)25 {26 Console.Write("->");27 Console.Write(*(p + i));28 }29 }30 31 Console.ReadKey();32 }33 }

最后是运行结果:

Thank you for your time and have a good day!

转载于:https://www.cnblogs.com/GhostZCH/archive/2012/09/18/2690701.html

你可能感兴趣的文章
Linux crontab 命令格式与详细例子
查看>>
百度地图Api进阶教程-地图鼠标左右键操作实例和鼠标样式6.html
查看>>
游标使用
查看>>
LLBL Gen Pro 设计器使用指南
查看>>
SetCapture() & ReleaseCapture() 捕获窗口外的【松开左键事件】: WM_LBUTTONUP
查看>>
PLSQL Developer使用技巧
查看>>
Android 设置界面的圆角选项
查看>>
百度地图api服务端根据经纬度得到地址
查看>>
使用yum更新时不升级Linux内核的方法
查看>>
sqlserver计算时间差DATEDIFF 函数
查看>>
51nod1307(暴力树剖/二分&dfs/并查集)
查看>>
用户体验分析: 以 “南通市图书馆微信公众号” 为例
查看>>
linux的管道 |和grep命令以及一些其他命令(diff,echo,cat,date,time,wc,which,whereis,gzip,zcat,unzip,sort)...
查看>>
Nginx和PHP-FPM的启动、重启、停止脚本分享
查看>>
cookie 和session 的区别详解
查看>>
Vuex-状态管理模式
查看>>
浮点数运算的精度问题:以js语言为例
查看>>
数据挖掘领域十大经典算法
查看>>
【C语言】09-字符串
查看>>
获取文件描述符
查看>>