2011-06-03 223 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