C# Pointer指針應(yīng)用實(shí)例簡(jiǎn)述
本文所述為在C#中使用Pointer指針的簡(jiǎn)單示例,非常適合新手參考學(xué)習(xí)。該實(shí)例演示了字符串的加密及解密的過(guò)程,將字符串指針p指向字符數(shù)組b,并將參數(shù)p傳給函數(shù),以及對(duì)給定字符串進(jìn)行加密處理。
具體實(shí)例代碼如下:
using System;
namespace PointerDemo
{
public class PointerDemo
{
public static void Main()
{
string s = "Hello Csharp!"; // 原字符串
Console.Write("the original string: ");
Console.WriteLine("{0}\r\n", s);
char[] b = new char[100];
s.CopyTo(0,b,0,13);
Console.Write("the encoded string: ");
// 使用不安全代碼
unsafe
{
// 加密過(guò)程
// 將字符串指針p指向字符數(shù)組b,并將參數(shù)p傳給函數(shù)
fixed(char *p = b) NEncodeDecode(p);
}
for(int i = 0; i < 13; i++)
Console.Write(b[i]);
Console.WriteLine("\r\n");
Console.Write("the decoded string: ");
unsafe
{
// 解密過(guò)程
fixed(char *p = b)NEncodeDecode(p);
}
for(int i = 0; i < 20; i++)
Console.Write(b[i]);
int t = 2;
t = t^5;
Console.WriteLine(t);
Console.WriteLine();
}
// 對(duì)給定字符串進(jìn)行加密處理
unsafe public static void NEncodeDecode(char *s)
{
int w;
for(int y = 0; y < 13; y++)
{
w = (int) *(s + y);
w = w^5; // 異或運(yùn)算
*(s + y) = (char)w;
}
}
}
}
相關(guān)文章
C#開發(fā)WinForm清空DataGridView控件綁定的數(shù)據(jù)
本文詳細(xì)講解了C#開發(fā)WinForm清空DataGridView控件綁定數(shù)據(jù)的方法,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
C#對(duì)XmlHelper幫助類操作Xml文檔的通用方法匯總
該篇文章主要總結(jié)的是自己平時(shí)工作中使用頻率比較高的Xml文檔操作的一些常用方法和收集網(wǎng)上寫的比較好的一些通用Xml文檔操作的方法,對(duì)C#?XmlHelper幫助類操作Xml文檔相關(guān)知識(shí)感興趣的朋友一起看看吧2022-03-03
C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁(yè)面寬度
將Excel轉(zhuǎn)為PDF格式時(shí),通常情況下轉(zhuǎn)換出來(lái)的PDF頁(yè)面都是默認(rèn)的寬度大小。所以本文提供了C#實(shí)現(xiàn)Excel轉(zhuǎn)PDF時(shí)設(shè)置內(nèi)容適應(yīng)頁(yè)面寬度的示例代碼,需要的可以參考一下2022-04-04
DevExpress實(shí)現(xiàn)TreeList節(jié)點(diǎn)互斥的方法
這篇文章主要介紹了DevExpress實(shí)現(xiàn)TreeList節(jié)點(diǎn)互斥的方法,對(duì)于初學(xué)者更好的理解C#有一定的幫助,需要的朋友可以參考下2014-08-08

