共用方式為


HOW TO:使用指標存取陣列元素 (C# 程式設計手冊)

在 unsafe 內容中,您可以使用指標項目存取方式來存取記憶體內的某個項目,如下列範例所示:

       char* charPointer = stackalloc char[123];
      for (int i = 65; i < 123; i++)
      {
          charPointer[i] = (char)i; //access array elements
      }

方括號內的運算式必須可隱含轉換為 int、uint、long 或 ulong。 p[e] 運算相當於 *(p+e)。 指標項目存取功能也與 C 和 C++ 一樣,都無法檢查超出範圍的錯誤。

範例

在下面的範例中,會將 123 個記憶體位置配置到字元陣列 charPointer 中。 這個陣列會用來顯示兩個 for 迴圈中的小寫字母和大寫字母。

請注意,charPointer[i] 運算式相當於 *(charPointer + i) 運算式,使用這兩個運算式的任何一個都會得到相同的結果。

// compile with: /unsafe
class Pointers
{
    unsafe static void Main() 
    {
        char* charPointer = stackalloc char[123];

        for (int i = 65; i < 123; i++)
        {
            charPointer[i] = (char)i;
        }

        // Print uppercase letters:
        System.Console.WriteLine("Uppercase letters:");
        for (int i = 65; i < 91; i++)
        {
            System.Console.Write(charPointer[i]);
        }
        System.Console.WriteLine();

        // Print lowercase letters:
        System.Console.WriteLine("Lowercase letters:");
        for (int i = 97; i < 123; i++)
        {
            System.Console.Write(charPointer[i]);
        }
    }
}
  

請參閱

參考

指標運算式 (C# 程式設計手冊)

指標型別 (C# 程式設計手冊)

unsafe (C# 參考)

fixed 陳述式 (C# 參考)

stackalloc (C# 參考)

概念

C# 程式設計手冊

其他資源

型別 (C# 參考)