您的位置:首页 > 其它

算法之关于【System.out.println("aaaa");//使得这里打印的结果是bbbb,而不是aaaa】

2012-01-17 16:08 387 查看
刚在CSDN论坛里看到一个帖子,题目如下(注意“使得这里打印的结果是bbbb,而不是aaaa”这句话,就是说,必须运行这句输出):

View Code

using System;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str = "b";
unsafe
{
string a = "aaaa";
fixed (char* psb = str)
{
fixed (char* ps1 = a)
{
*ps1 = *psb;
*(ps1 + 1) = *psb;
*(ps1 + 2) = *psb;
*(ps1 + 3) = *psb;
}
}
}
Console.WriteLine("aaaa");
Console.Read();
}
}
}


说明:只要改变字符串“aaaa”中的四个字符内存地址的值,使其等于字符“b"的内存地址的值即可。
运行效果如下:



原理如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: