Sdílet prostřednictvím


Postupy: Přístup k elementu pole pomocí ukazatele (Průvodce programováním v C#)

V kontextu unsafe lze přístup k prvku v paměti pomocí ukazatele prvek přístup, jak ukazuje následující příklad:

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

Výraz v hranatých závorkách musí být implicitně převést na int, uint, long, nebo ulong.Je ekvivalentní operaci p [e] *(p+e).C a C++ přístup prvek ukazatel nekontroluje out-of-bounds chyby.

Příklad

V tomto příkladu jsou přiděleny 123 paměťových míst do pole znaků charPointer.Pole se používá k zobrazení písmena malá a velká písmena ve dvou pro smyčky.

Všimněte si, že výraz charPointer[i] je ekvivalentní výrazu *(charPointer + i), a stejného výsledku můžete získat pomocí buď dva výrazy.

// 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]);
        }
    }
}
  

Viz také

Referenční dokumentace

Výrazy ukazatelů (Průvodce programováním v C#)

Typy ukazatelů (Průvodce programováním v C#)

unsafe (Referenční dokumentace jazyka C#)

fixed – příkaz (Referenční dokumentace jazyka C#)

stackalloc (Referenční dokumentace jazyka C#)

Koncepty

Průvodce programováním v C#

Další zdroje

Typy (Referenční dokumentace jazyka C#)