Partager via


Conversions de pointeur (Guide de programmation C#)

Le tableau suivant répertorie les conversions implicites prédéfinies de pointeurs. Des conversions implicites peuvent avoir lieu dans de nombreuses situations, notamment lors de l'appel de méthodes et de la définition d'instructions d'assignation.

Conversions de pointeur implicites

From

Pour

Tout type de pointeur

void*

null

Tout type de pointeur

La conversion de pointeur explicite est utilisée pour effectuer des conversions, pour lesquelles il n'existe aucune conversion implicite, à l'aide d'une expression de cast. Le tableau suivant répertorie ces conversions explicites.

Conversions de pointeur explicites

From

Pour

Tout type de pointeur

Tout autre type de pointeur

sbyte, byte, short, ushort, int, uint, long ou ulong

Tout type de pointeur

Tout type de pointeur

sbyte, byte, short, ushort, int, uint, long ou ulong

Exemple

Dans l'exemple suivant, un pointeur vers int est converti en un pointeur vers byte. Notez que le pointeur pointe vers l'octet adressé le plus bas de la variable. Lorsque vous incrémentez successivement le résultat, jusqu'à la taille de int (4 octets), vous pouvez afficher les octets restants de la variable.

// compile with: /unsafe
class ClassConvert
{
    static void Main() 
    {
        int number = 1024;

        unsafe 
        {
            // Convert to byte: 
            byte* p = (byte*)&number;

            System.Console.Write("The 4 bytes of the integer:");

            // Display the 4 bytes of the int variable: 
            for (int i = 0 ; i < sizeof(int) ; ++i)
            {
                System.Console.Write(" {0:X2}", *p);
                // Increment the pointer:
                p++;
            }
            System.Console.WriteLine();
            System.Console.WriteLine("The value of the integer: {0}", number);

            // Keep the console window open in debug mode.
            System.Console.WriteLine("Press any key to exit.");
            System.Console.ReadKey();
        }
    }
}
    /* Output:
        The 4 bytes of the integer: 00 04 00 00
        The value of the integer: 1024
    */

Voir aussi

Référence

Expressions de pointeur (Guide de programmation C#)

Types pointeur (Guide de programmation C#)

unsafe (référence C#)

fixed, instruction (référence C#)

stackalloc (référence C#)

Concepts

Guide de programmation C#

Autres ressources

Types (référence C#)