Comment : obtenir l'adresse d'une variable (Guide de programmation C#)
Pour obtenir l'adresse d'une expression unaire, dont l'évaluation est une variable fixe, utilisez l'opérateur address-of :
int number;
int* p = &number; //address-of operator &
L'opérateur address-of ne peut pas être appliqué à une variable. Si la variable est une variable pouvant être déplacée, vous pouvez utiliser l'instruction fixed pour fixer temporairement la variable avant d'obtenir son adresse.
Il est de votre responsabilité de garantir que la variable est initialisée. Le compilateur ne publiera pas de message d'erreur si la variable n'est pas initialisée.
Vous ne pouvez pas obtenir l'adresse d'une constante ou d'une valeur.
Exemple
Dans cet exemple, un pointeur vers int, p, est déclaré et se voit assigner l'adresse d'une variable entière, number. La variable number est initialisée à la suite de l'assignation à *p. Si vous indiquez cette instruction d'assignation sous la forme d'un commentaire, l'initialisation de la variable number est supprimée, mais aucune erreur de compilation n'est émise. Remarquez l'utilisation de l'opérateur -> d'accès au membre pour obtenir et afficher l'adresse stockée dans le pointeur.
// 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
*/
Voir aussi
Référence
Expressions de pointeur (Guide de programmation C#)
Types pointeur (Guide de programmation C#)
fixed, instruction (référence C#)