#region 使用指针检索数据值
//class program
//{
// // 1、项目属性勾选“允许不安全代码”
// // 2、使用unsafe 修饰符
// // 这里是将整个Main方法声明为不安全代码
// //static unsafe void Main()
// static void Main()
// {
// // 当代码段被 unsafe 修饰符标记时,C# 允许该代码段中的函数使用指针变量,
// // 故使用了指针变量的代码块又被称为不安全代码或非托管代码。
// int var = 20; // // 将部分代码声明为不安全代码
// unsafe
// {
// int* p = &var;
// }
// } // public unsafe void swap(int* p, int* q)
// {
// int temp = *p;
// *p = *q;
// *q = temp;
// }
//}
#endregion #region 指针可以作为方法中的参数
// // using System;
// namespace UnsafeCodeApplication
// {
// class TestPointer
// {
// public unsafe void swap(int* p, int* q)
// {
// int temp = *p;
// *p = *q;
// *q = temp;
// }
// public unsafe static void Main()
// {
// TestPointer p = new TestPointer();
// int var1 = 10;
// int var2 = 20;
// int* x = &var1;
// int* y = &var2;
// Console.WriteLine("Before Swap: var1:{0}, var2: {1}", var1, var2);
// p.swap(x, y);
// Console.WriteLine("After Swap: var1:{0}, var2: {1}", var1, var2);
// Console.ReadKey();
// }
// }
// } #endregion #region 使用指针访问数组元素 fixed()
namespace UnsafeCodeApplication
{
//using System;
class TestPointer
{
public unsafe static void Main()
{
int[] list = { , , }; // !!引用类型 都需要fixed,防止垃圾回收导致内存地址变化
fixed (int* ptr = list)
/* let us have array address in pointer */
for (int i = ; i < ; i++)
{
Console.WriteLine("Address of list[{0}]={1}", i, (int)(ptr + i));
Console.WriteLine("Value of list[{0}]={1}", i, *(ptr + i));
}
Console.ReadKey();
}
}
}
#endregion

C#指针使用demo的更多相关文章

  1. C++11中智能指针的原理、使用、实现

    目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理.程序员自己管理堆内存可以提高了程序 ...

  2. C/C++ 类成员函数指针 类成员数据指针

    普通函数指针:  "return_type (*ptr_name)(para_types) " 类成员函数指针: "return_type (class_name::*p ...

  3. C++智能指针 原理、使用与实现

    目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理.程序员自己管理堆内存可以提高了程序 ...

  4. ca71a_c++_指向函数的指针_通过指针调用函数txwtech

    /*ca71a_c++_指向函数的指针_通过指针调用函数用typedef简化函数指针的定义简化前: bool(*pf)(const string&, const string &); ...

  5. 了解javascript中的this --实例篇

    对javascript this的赋值有了深一层的理解后,看一下比较复杂的情况,this的应用篇参考<对javascript this的理解>. #demo1 var name=" ...

  6. Java中的 内部类(吐血总结)

    1. 内部类的作用 内部类是一个独立的实体,可以用来实现闭包:能与外部类通信:内部类与接口使得多继承更完整 2. 内部类的分类 1)普通内部类 类的实例相关,可以看成是一个实例变量.内部类的类名由 “ ...

  7. C++全总结

    // CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include & ...

  8. 使用 Qt 获取 UDP 数据并显示成图片

    一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...

  9. GNU中的关键字typeof

    如果你是 C++ 程序员,应该接触过 C++11 里的 decltype 操作符,它的作用是自动推导表达式的数据类型,以解决泛型编程中有些类型由模板参数决定而难以(甚至不可能)表示的问题.其实这个特性 ...

随机推荐

  1. 18 Ajax、Json以及jackson框架解析json的基本应用

    1. Ajax (1)概念:ASynchronous JavaScript And XML 异步的JavaScript 和 XML 异步和同步:客户端和服务器端相互通信的基础上 * 客户端必须等待服务 ...

  2. win7系统的CMD窗口切换目录--小计

    经常使用win7系统的CMD窗口,需要切换到工作目录,方法如下: 1. Win + R 2. 在命令行输入 cmd 出现如下: C:\Users\admin> 3. 在以上输入 D: (表示切换 ...

  3. maven打包spring boot项目及跳过test文件

    打包命令 mvn clean package // 会先清理现有的target目录 or mvn package 跳过测试文件 1. idea全局配置 右侧maven会取消test选项 2. 命令行附 ...

  4. SAS学习笔记59 OPTIONS系统选项

    带VALUE选项的OPTIONS过程将指定选项的值.范围及该值如何设置的信息打印到日志窗口 在日志窗口打印的输出如下图所示 将GETOPTION函数作为%SYSFUNC宏函数的参数,从而获取系统选项设 ...

  5. js调用浏览器复制

    <script type="text/javascript"> function copyUrl2() { var Url2=document.getElementBy ...

  6. redis持久化机制和内存管理

    redis持久化方式有两种:RDB方式和AOF方式 1.RDB方式:内存快照,在指定的时间间隔对数据进行快照存储,支持在客户端直接BGSAVE或者SAVE命令来创建一个内存快照,BGSAVE会fork ...

  7. Oracle——无法在查询中执行 DML 操作

    今天在调用Oracle Function遇到一个异常

  8. NEST search查询

    /// <summary> /// GET /megacorp/employee/_search /// </summary> /// <returns></ ...

  9. vue实现滑块滑动校验

    为了防止机器操作自动提交,我们需要添加滑动校验. 实现代码如下:   1.子组件slider.vue <template> <div class="drag" r ...

  10. 谷歌浏览器解决ajax跨域问题

    在用mui和H5+做混合开发,会利用HBuildx去真机调试,可真机调试总有问题所在,懂得人自然懂,而我们直接打开页面显示的只有一个静态的页面,是获取不到数据的在这里我想说的不是代码中利用jsonp, ...