C# Pointer指针应用实例简述
程序员文章站
2023-12-18 11:03:22
本文所述为在c#中使用pointer指针的简单示例,非常适合新手参考学习。该实例演示了字符串的加密及解密的过程,将字符串指针p指向字符数组b,并将参数p传给函数,以及对给定...
本文所述为在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; } } } }