ポインタの比較

宣言

  ポインタ 参照 ポインタ参照
C++ * & *&
C++/CLI unmanaged * & *&
managed ^※1 % ^%※2
C# ---※3

※1 正確には「トラッキング ハンドル (tracking handle)」 CLR 参照クラスのオブジェクトの宣言 | MSDN Declaration of a CLR Reference Class Object
※2 正確には「トラッキング参照 (tracking reference) / 追跡参照」 方法: C++/CLI で追跡参照を使用する | MSDN How to: Use Tracking References in C++-CLI
※3 アンセーフを使用すれば、C++形式のポインタを使用できます。

空ポインタ

キーワード
C++ NULL
C++/CLI unmanaged NULL
managed nullptr
C# null

ポインタの固定

カベージコレクションによって、メモリのアドレスが変更されるのを防ぐ方法です。

C++ --- (不要)
C++/CLI unmanaged --- (不要)
managed pin_ptr
Int32^ i = gcnew Int32(10);
pin_ptr< int > p = &static_cast< int >( i );
C# fixedステートメント
fixed( int* p = &i )
{
}

参考

参考書