繁体   English   中英

int *如何在C#中bool?

[英]How int* is bool in C#?

我试图在C#中使用像C中的指针。

public static void Main(string[] args)
    {
        unsafe
        {
            int i = 5;
            int* j = &i;
            Console.WriteLine(j);  //cannot convert from 'int*' to 'bool'
        } 

    }

我对此代码有两个疑问:

  1. 如何用/ unsafe编译?
  2. 为什么Console.Writeline(j)试图将j to bool转换j to bool

第2点)需要两个步骤:

  • Console.WriteLine()没有int*的重载
  • 显然它然后尝试它的第一次重载, WriteLine(bool value)并且找不到转换

我称之为弱错误报告。

要打印地址,请先将其转换为ulong

  1. 如果使用csc,添加/不安全; 或者在vs项目中,转到项目属性,然后有一个复选框
  2. 简直就是找不到更好的搭配; 我必须检查规范的确切顺序规则,但只是把它视为编译器说“没有合适的匹配,我猜这个,但这不起作用”

写指针的值是没有意义的,它只是一个随机地址。 使用堆栈上的变量地址初始化指针,这样的地址不能很好地重复。 您想要使用*运算符取消引用指针。 像这样:

        Console.WriteLine(*j);

在您的情况下,它会写入指向的值,5。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM