Accueil Développement Qu'est-ce qu'un opérateur d'indirection? - définition de techopedia

Qu'est-ce qu'un opérateur d'indirection? - définition de techopedia

Table des matières:

Anonim

Définition - Que signifie l'opérateur Indirection?

Un opérateur d'indirection, dans le contexte de C #, est un opérateur utilisé pour obtenir la valeur d'une variable vers laquelle pointe un pointeur. Tandis 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 d'indirection est un opérateur unaire représenté par le symbole (*).


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


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

Techopedia explique l'opérateur Indirection

Le symbole (*) est utilisé pour déclarer des types de pointeurs 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 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 dans cette région n'est pas vérifiée par le Common Language Runtime (CLR). Dans la région non sécurisée, l'opérateur d'indirection est autorisé à lire et à écrire sur 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 a est affectée d'une valeur de 1. Dans la 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 pointé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 vers lequel il pointe, afin d'éviter un comportement indéfini lors de l'exécution. Il ne doit pas être appliqué à un pointeur void ou à une expression qui n'est pas de type pointeur, pour éviter les erreurs de compilation. Cependant, après avoir converti un pointeur void en 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 doit être écrit une seule fois avec le type sous-jacent et non 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 nul, il en résulte un comportement défini par l'implémentation. Étant donné que cet opérateur est utilisé dans un contexte non sécurisé, 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 contexte de C #

Qu'est-ce qu'un opérateur d'indirection? - définition de techopedia