如何在C#中声明c ++指针

时间:2011-06-03 08:31:15

标签: c# c++ pointers

BIRDREADING *bird_data;
bird_data = &frame.reading[i]; 

如何在C#中声明这样的内容?

UPDATE1:

我想调用C ++ DLL / lib或用C#重写。实际上我试着在这个链接上解决我自己的问题。Use a variable directly(data return are same in an array) or with pointer? 在我将上面的内容转换为c#

之后,试试我的运气来解决问题

3 个答案:

答案 0 :(得分:4)

在c#中你可以声明一个被称为不安全编程的指针。

示例:

unsafe {
            int iData = 10;
            int* pData = &iData;
            Console.WriteLine("Data is " + iData);
            Console.WriteLine("Address is " + (int)pData );
        }

查看此文章:Writing Unsafe code using C#

答案 1 :(得分:0)

type* identifier;

这取决于BIRDREADING会不会成为参考类型?

您无法声明指向Pointer Types (C#)

中引用类型的指针
  

以下任何类型都可能是a   指针类型:
  sbyte,byte,short,ushort,int,uint,long,ulong,char,float,double,decimal或bool。
  任何枚举类型。
  任何指针类型   任何用户定义的结构类型,仅包含非托管类型的字段。

因此,对于您的示例,给予BIRDREADING统计上述

BIRDREADING *bird_data;

另外,你想用指针做什么?你确定需要指针吗?

答案 2 :(得分:0)

如果BIRDREADING是一个类,它根据定义是一个指针,你不需要做任何特别的事情:

BIRDREADING bird_data;
bird_data = frame.reading[i];

如果它是一个结构,那么获得它的意义取决于上下文。