Opérateur d'indirection

Auteur: Lewis Jackson
Date De Création: 8 Peut 2021
Date De Mise À Jour: 1 Juillet 2024
Anonim
Opérateur d'indirection - La Technologie
Opérateur d'indirection - La Technologie

Contenu

Définition - Que signifie opérateur Indirection?

Un opérateur d'indirection, dans le con de C #, est un opérateur utilisé pour obtenir la valeur d'une variable sur laquelle un pointeur est pointé. Alors qu'un pointeur pointant sur une variable fournit un accès indirect à la valeur de la variable stockée dans son adresse mémoire, l'opérateur d'indirection déréférence le pointeur et renvoie la valeur de la variable à cet emplacement mémoire. L'opérateur indirection est un opérateur unaire représenté par le symbole (*).

L'opérateur d'indirection peut être utilisé dans un pointeur sur un pointeur sur un entier, un tableau unidimensionnel d'indicateurs sur des entiers, un pointeur sur un caractère et un pointeur sur un type inconnu.

L'opérateur d'indirection est également appelé opérateur de déréférence.

Introduction à Microsoft Azure et au nuage Microsoft | Tout au long de ce guide, vous apprendrez ce qu'est le cloud computing et comment Microsoft Azure peut vous aider à migrer et à exploiter votre entreprise à partir du cloud.

Techopedia explique l'opérateur Indirection

Le symbole (*) est utilisé pour déclarer des types de pointeur et pour effectuer une indirection de pointeur, tandis que l’opérateur ‘address-of’ renvoie l’adresse d’une variable. Par conséquent, l'opérateur d'indirection et l'opérateur d'adresse sont des inverses l'un de l'autre.

C # permet d'utiliser des pointeurs uniquement dans une région non sécurisée, ce qui implique que la sécurité du code au sein de cette région n'est pas vérifiée par le CLR (Common Language Runtime). Dans la zone non sécurisée, l'opérateur d'indirection est autorisé à lire et à écrire dans un pointeur. Les instructions C # suivantes illustrent l'utilisation de l'opérateur d'indirection:
  • int a = 1, b; // ligne 1
  • int * pInt = & a; // ligne 2
  • b = * pInt; // ligne 3
Dans la première ligne ci-dessus, a et b sont des variables entières et la valeur 1 est attribuée à a. En ligne 2, l'adresse de a est stockée dans le pointeur entier pInt (ligne 2). L'opérateur de déréférence est utilisé à la ligne 3 pour affecter la valeur à l'adresse indiquée par pInt à la variable entière b.

L'opérateur d'indirection doit être utilisé pour déréférencer un pointeur valide avec une adresse alignée sur le type pointé, afin d'éviter un comportement indéfini au moment de l'exécution. Il ne doit pas être appliqué à un pointeur vide ou à une expression qui n'est pas du type pointeur, afin d'éviter les erreurs de compilation. Toutefois, après avoir converti un pointeur vide dans le type de pointeur droit, l'opérateur d'indirection peut être utilisé.

Lors de la déclaration de plusieurs pointeurs dans une seule instruction, l'opérateur d'indirection ne doit être écrit qu'une seule fois avec le type sous-jacent et ne doit pas être répété pour chaque nom de pointeur. L'opérateur d'indirection est distributif en C #, contrairement à C et C ++. Lorsque l'opérateur d'indirection est appliqué à un pointeur null, il en résulte un comportement défini par l'implémentation. Etant donné que cet opérateur est utilisé dans une configuration non sécurisée, le mot clé unsafe doit être utilisé avant lui avec l'option / unsafe lors de la compilation. Cette définition a été écrite dans le con de C #