C#指针使用demo
#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的更多相关文章
- C++11中智能指针的原理、使用、实现
目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理.程序员自己管理堆内存可以提高了程序 ...
- C/C++ 类成员函数指针 类成员数据指针
普通函数指针: "return_type (*ptr_name)(para_types) " 类成员函数指针: "return_type (class_name::*p ...
- C++智能指针 原理、使用与实现
目录 理解智能指针的原理 智能指针的使用 智能指针的设计和实现 1.智能指针的作用 C++程序设计中使用堆内存是非常频繁的操作,堆内存的申请和释放都由程序员自己管理.程序员自己管理堆内存可以提高了程序 ...
- ca71a_c++_指向函数的指针_通过指针调用函数txwtech
/*ca71a_c++_指向函数的指针_通过指针调用函数用typedef简化函数指针的定义简化前: bool(*pf)(const string&, const string &); ...
- 了解javascript中的this --实例篇
对javascript this的赋值有了深一层的理解后,看一下比较复杂的情况,this的应用篇参考<对javascript this的理解>. #demo1 var name=" ...
- Java中的 内部类(吐血总结)
1. 内部类的作用 内部类是一个独立的实体,可以用来实现闭包:能与外部类通信:内部类与接口使得多继承更完整 2. 内部类的分类 1)普通内部类 类的实例相关,可以看成是一个实例变量.内部类的类名由 “ ...
- C++全总结
// CPPTEST.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include & ...
- 使用 Qt 获取 UDP 数据并显示成图片
一个项目,要接收 UDP 数据包,解析并获取其中的数据,主要根据解析出来的行号和序号将数据拼接起来,然后将拼接起来的数据(最重要的数据是 R.G.B 三个通道的像素值)显示在窗口中.考虑到每秒钟要接收 ...
- GNU中的关键字typeof
如果你是 C++ 程序员,应该接触过 C++11 里的 decltype 操作符,它的作用是自动推导表达式的数据类型,以解决泛型编程中有些类型由模板参数决定而难以(甚至不可能)表示的问题.其实这个特性 ...
随机推荐
- urlencode编码 — 为什么要编码
原文链接:https://blog.csdn.net/stpeace/article/details/82892571 参考:https://blog.csdn.net/z69183787/artic ...
- 【C++札记】友元
C++封装的类增加了对类中数据成员的访问限制,从而保证了安全性.如想访问类中的私有成员需要通过类中提供的公共接口来访问,这样间接的访问方式,无疑使得程序的运行效率有所降低. 友元的提出可以使得类外的函 ...
- 1. Spark SQL概述
1.1 什么是Spark SQL Spark SQL是Spark用来处理结构化数据的一个模块,它提供了一个编程抽象叫做DataFrame并且作为分布式SQL查询引擎的作用 它是将Hive SQL转换成 ...
- Shiro集成SSM基于动态URL权限管理(二)
这个案例基于上一个demo扩展而来.所以数据库表,在Shiro集成SSM基于URL权限管理(一)开篇的一致.如果上个demo操作的建议重新导入一次,避免出现问题. 而这次都不是通过固定写在方法上的注解 ...
- js指定日期时间加一天 ,判断指定时间是否为周末
function dateAdd(startDate) { startDate = new Date(startDate); startDate = +startDate + ***; startDa ...
- (二)pdf的构成综述
引自:https://blog.csdn.net/steve_cui/article/details/81948486 一个pdf文件主要是由4部分构成:文件头.文件体.交叉引用表.文件尾 文件头:用 ...
- Oracle 11g Java驱动包ojdbc6.jar安装到maven库,并查看jar具体版本号
ojdbc6.jar下载 Oracle官方宣布的Oracle数据库11g的驱动jar包是ojdbc6.jar ojdbc6.jar下载地址:https://www.oracle.com/technet ...
- ViewState到底是什么
ViewState是“客户端”状态保持的一种方案,ViewState是.net中特有的,其他的编程语言,如:Java.PHP中是没有ViewState这个概念的. 举个简单的例子ViewState的例 ...
- c# 基于RTMP推流 PC+移动端 拉流播放
网上关于直播相关的文章很多,但是讲解还是不够系统,对于刚刚接触直播开发的朋友实施起来会浪费不少时间.下面结合我自己的经验, 介绍一下直播方面的实战经验. 分成两个部分 第一部分是标题中介绍的基于RTM ...
- C# vb .net实现对比度调整特效滤镜效果
在.net中,如何简单快捷地实现Photoshop滤镜组中的对比度效果呢?答案是调用SharpImage!专业图像特效滤镜和合成类库.下面开始演示关键代码,您也可以在文末下载全部源码: 设置授权 第一 ...