2011-06-03 228 views
1
BIRDREADING *bird_data; 
bird_data = &frame.reading[i]; 

如何在C#中声明这样的声明?如何在C中声明C++指针#

UPDATE1:

我要调用一个C++ DLL/lib或在C#重写。其实我试图在这个链接上解决我自己的问题。 Use a variable directly(data return are same in an array) or with pointer? 尝试我的运气来解决问题后,我转换成上述的c#

+1

什么?调用C++ DLL/lib或在C#中重写? – 2011-06-03 08:37:28

+1

你不要在C#中使用指针。你愿意为这个问题添加更多背景吗? – 2011-06-03 08:38:31

+0

HenkHolterman @ yes我想调用一个C++ DLL/lib或在C#中重写。 其实我试图解决我自己的问题在这个链接上.http://stackoverflow.com/questions/6223703/use-a-variable-directlydata-return-are-same-in-an-array-or-with-指针。尝试我的运气来解决问题后,我将上面转换成C#。 – LMC008 2011-06-03 08:45:07

回答

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#

0

type* identifier;

这取决于,将BIRDREADING是引用类型?

你不能声明指针从Pointer Types (C#)

引用类型的任何以下类型的可以是 指针类型:
为sbyte,字节,短,USHORT,INT,UINT,长,ULONG ,char,float,double,decimal或bool。
任何枚举类型。
任何指针类型。
任何用户定义的结构类型,只包含非托管类型的字段。

因此,对于你的榜样,给予该BIRDREADING statisifies上述

BIRDREADING *bird_data; 

另外,你要使用的指针是为了什么?你确定你需要一个指针吗?

+0

是BIRDREADING是一个结构 – LMC008 2011-06-03 08:56:37

0

如果BIRDREADING是一类是通过定义一个指针,你不需要做任何特殊:

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

如果它是一个结构,然后获取其poiner取决于上下文。

+0

是BIRDREADING是一个结构,对不起,我仍然是新的csharp。你的意思是“这是一个结构,然后取决于上下文。” – LMC008 2011-06-03 08:52:26