C#中指针的简单使用
2024-08-27 11:34:25
原来C#不仅仅支持和C/C++中指针(或者说是引用)很像的委托delegate,还支持在unsafe代码块中使用指针,从而写非托管的代码(人为不让垃圾回收机制来管理相应的内存)。在unsafe中就可以使用指针,基本用法和C++差不多(果然是一家人,哈哈)。
在用指针调用数组的时候需要使用fixed语句(只能在unsafe语句块中使用)来固定指针变量的初始值,否则可能被垃圾回收机制改变指针变量的值,fixed语句可以禁止垃圾回收机制重定位可移动的变量。
fixed语句中可以设置指向托管变量的指针,并且执行该语句期间可以固定某变量。
基本语法
fixed (<需要固定的变量>)
{ <fixed语句块,内部可以用指针对托管变脸操作> }
下面上一个操作数组的简单例子:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Collections.Generic; namespace CsharpStudy
{ class Program
{ static void Main(string[] args)
{
/************Main function***************/ unsafe
{
int[] list = new int[]{, , }; fixed (int* p = list)
{
for (int i = ; i < ; i++)
{
Console.WriteLine(*(p + i));
} }
} /****************************************/
Console.WriteLine();
Console.ReadKey();
}
} }
例子的结果图是
注意,在VS中运行unsafe的代码的时候需要在project的属性中找到bulid,勾选允许非安全的代码这一项。
最新文章
- CSS 常用基本功能整理
- grub4dos
- PhoneGap--001 入门 安装
- loadrunner解决“服务器正在运行中”方法
- CI 框架隐藏index.php-ubuntu
- 搭建Nginx(负载均衡)+Redis(Session共享)+Tomcat集群
- BILL.WEI]stimulsoft reports 中panel 妙用
- Alljoyn 概述(3)
- 【技术翻译】支持向量机简明教程及其在python和R下的调参
- 201621123050 《Java程序设计》第8周学习总结
- 【easy】107. Binary Tree Level Order Traversal II 按层输出二叉树
- php ip2long负数的问题
- An error occurred. Sorry, the page you are looking for is currently unavailable. Please try again later.
- 笔记02 linux的一些命令sed
- jupyter安装,修改登录密码,启动
- 4710: [Jsoi2011]分特产
- [整理]Node入门 &#187; 一本全面的Node.js教程 - Demo实践所遇到的问题
- jQueryEasyUi行编辑打造增删改查
- Unity工程3D和2D开发模式切换
- content: ";\e600";
热门文章
- Express配置ssl证书,为网站开启https
- for_each使用方法详解
- Android笔记(二十四) Android中的SeekBar(拖动条)
- OpenStack 2014.1(Icehouse) 更新说明
- 容器自动化(一):docker基础(上)
- redis高可用之sentinel哨兵
- Alpha版本发布
- MySQL 是怎样运行的:从根儿上理解 MySQL:字符集和比较规则
- ubuntu安装anaconda3+tensorflow(cpu)+pycharm(windows几乎一样)
- k8s的pod的资源调度