共用方式為


HOW TO:取得變數位址 (C# 程式設計手冊)

若要取得評估為固定變數的一元 (Unary) 運算式位址,請使用傳址運算子:

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

傳址運算子只能套用至變數; 如果該變數是可移動的變數,您可以使用 fixed 陳述式,在取得其位址之前暫時固定該變數。

必須確定變數已初始化。 如果變數未初始化,則編譯器不會發出錯誤訊息。

就無法取得常數或值的位址。

範例

在這個範例中,會宣告 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# 參考)