C# Pointer指針運用實例簡述。本站提示廣大學習愛好者:(C# Pointer指針運用實例簡述)文章只能為提供參考,不一定能成為您想要的結果。以下是C# Pointer指針運用實例簡述正文
本文所述為在C#中應用Pointer指針的簡略示例,異常合適老手參考進修。該實例演示了字符串的加密及解密的進程,將字符串指針p指向字符數組b,並將參數p傳給函數,和對給定字符串停止加密處置。
詳細實例代碼以下:
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 { // 加密進程 // 將字符串指針p指向字符數組b,並將參數p傳給函數 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 { // 解密進程 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(); } // 對給定字符串停止加密處置 unsafe public static void NEncodeDecode(char *s) { int w; for(int y = 0; y < 13; y++) { w = (int) *(s + y); w = w^5; // 異或運算 *(s + y) = (char)w; } } } }