我正在练习使用C#中的指针(通过不安全的代码)。所以现在,我只想将“”连接到一个int *,所以我可以将它用作Console.WriteLine()
中的参数。
static void Main(string[] args)
{
fullOfPointers();
}
static unsafe void fullOfPointers()
{
int value = 10;
int* adress = &value;
Console.WriteLine(&value+"");//error
Console.ReadLine();
}
但编译器说运算符'+'不能用于int *和string。那我该怎么办?
答案 0 :(得分:6)
如果你想要指针的内存地址..把它投到int
:
Console.WriteLine((int)&value); // will produce random memory address
如果您希望address
的值取消引用指针:
Console.WriteLine(*address); // produces 10
我完全不知道你为什么试图用string
连接任何东西..这是没有必要的。
答案 1 :(得分:0)
&value
返回值address
,您尝试将内存地址与字符串文字连接起来。如果您想要adress's
值,则需要使用*address
,所以你可以试试:
Console.WriteLine(*adress + " asd");
输出将是:
10 asd