次の方法で共有


方法: 変数のアドレスを取得する (C# プログラミング ガイド)

固定変数に評価される単項式のアドレスを取得するには、アドレス演算子を使用します。

int number;
int* p = &number; //address-of operator &

アドレス演算子は、変数にのみ適用できます。変数が可変変数である場合は、固定ステートメントを使用して、アドレスを取得する前に一時的に変数を固定します。

変数は、確実に初期化してください。変数が初期化されていない場合、コンパイラはエラー メッセージを発行しません。

定数や値のアドレスは取得できません。

使用例

次の例では、int へのポインター p を宣言し、整数の変数 number のアドレスを代入します。*p に代入することによって変数 number が初期化されます。この代入ステートメントをコメントにすると、変数 number の初期化が削除されますが、コンパイル時のエラーは発行されません。メンバー アクセス演算子 -> を使用して、ポインターに格納されているアドレスを取得し、表示することに注意してください。

// compile with: /unsafe
class AddressOfOperator
{
    static void Main()
    {
        int number;

        unsafe 
        {
            // Assign the address of number to a pointer:
            int* p = &number;

            // Commenting the following statement will remove the
            // initialization of number.
            *p = 0xffff;

            // Print the value of *p:
            System.Console.WriteLine("Value at the location pointed to by p: {0:X}", *p);

            // Print the address stored in p:
            System.Console.WriteLine("The address stored in p: {0}", (int)p);
        }

        // Print the value of the variable number:
        System.Console.WriteLine("Value of the variable number: {0:X}", number);

        System.Console.ReadKey();
    }
}
/* Output:
        Value at the location pointed to by p: FFFF
        The address stored in p: 2420904
        Value of the variable number: FFFF
*/

参照

関連項目

ポインター式 (C# プログラミング ガイド)

ポインター型 (C# プログラミング ガイド)

unsafe (C# リファレンス)

fixed ステートメント (C# リファレンス)

stackalloc (C# リファレンス)

概念

C# プログラミング ガイド

その他の技術情報

型 (C# リファレンス)