Indirekter Operator

Autor: Lewis Jackson
Erstelldatum: 8 Kann 2021
Aktualisierungsdatum: 1 Juli 2024
Anonim
Ponsse Studio: PONSSE solutions for steep slope harvesting
Video: Ponsse Studio: PONSSE solutions for steep slope harvesting

Inhalt

Definition - Was bedeutet Indirektionaler Operator?

Ein Indirektionsoperator in der Konstante von C # ist ein Operator, mit dem der Wert einer Variablen ermittelt wird, auf die ein Zeiger zeigt. Während ein auf eine Variable zeigender Zeiger einen indirekten Zugriff auf den Wert der in seiner Speicheradresse gespeicherten Variablen bietet, gibt der Indirektionsoperator den Zeiger dereferenziert und den Wert der Variablen an diesem Speicherort zurück. Der Indirektionsoperator ist ein unärer Operator, der durch das Symbol (*) dargestellt wird.

Der Indirektionsoperator kann in einem Zeiger auf einen Zeiger auf eine Ganzzahl, einem eindimensionalen Array von Zeigern auf Ganzzahlen, einem Zeiger auf ein Zeichen und einem Zeiger auf einen unbekannten Typ verwendet werden.

Der Indirektionsoperator ist auch als Dereferenzierungsoperator bekannt.

Eine Einführung in Microsoft Azure und die Microsoft Cloud | In diesem Handbuch erfahren Sie, worum es beim Cloud-Computing geht und wie Microsoft Azure Sie bei der Migration und Ausführung Ihres Unternehmens aus der Cloud unterstützen kann.

Techopedia erklärt den Indirection Operator

Das Symbol (*) wird zum Deklarieren von Zeigertypen und zum Durchführen einer Zeiger-Indirektion verwendet, während der Operator "address-of" () die Adresse einer Variablen zurückgibt. Daher sind der Indirektionsoperator und der Adressoperator gegensätzlich.

In C # können Zeiger nur in einer unsicheren Region verwendet werden. Dies bedeutet, dass die Sicherheit des Codes in dieser Region nicht durch die Common Language Runtime (CLR) überprüft wird. In der unsicheren Region kann der Indirektionsoperator einen Zeiger lesen und darauf schreiben. Die folgenden C # -Anweisungen veranschaulichen die Verwendung des Indirektionsoperators:
  • int a = 1, b; // Linie 1
  • int * pInt = & a; // Zeile 2
  • b = * pInt; // Zeile 3
In der ersten Zeile oben sind a und b ganzzahlige Variablen, und a wird der Wert 1 zugewiesen. In Zeile 2 wird die Adresse von a im ganzzahligen Zeiger pInt (Zeile 2) gespeichert. Der Dereferenzierungsoperator wird in Zeile 3 verwendet, um den Wert an der Adresse, auf die pInt zeigt, der Ganzzahlvariablen b zuzuweisen.

Der Indirektionsoperator sollte verwendet werden, um einen gültigen Zeiger mit einer Adresse zu dereferenzieren, die an dem Typ ausgerichtet ist, auf den er verweist, um undefiniertes Verhalten zur Laufzeit zu vermeiden. Es sollte nicht auf einen ungültigen Zeiger oder auf einen Ausdruck angewendet werden, der nicht vom Zeigertyp ist, um Compilerfehler zu vermeiden. Nach dem Umsetzen eines leeren Zeigers auf den Typ des rechten Zeigers kann der Indirektionsoperator verwendet werden.

Wenn Sie mehrere Zeiger in einer einzigen Anweisung deklarieren, sollte der Indirektionsoperator nur einmal mit dem zugrunde liegenden Typ geschrieben und nicht für jeden Zeigernamen wiederholt werden. Der Indirektionsoperator ist im Gegensatz zu C und C ++ in C # distributiv. Wenn der Indirektionsoperator auf einen Nullzeiger angewendet wird, führt dies zu einem durch die Implementierung definierten Verhalten. Da dieser Operator in einem unsicheren Con verwendet wird, sollte das Schlüsselwort unsafe zusammen mit der Option / unsafe während der Kompilierung verwendet werden. Diese Definition wurde in der con von C # geschrieben