Operatore indiretto

Autore: Lewis Jackson
Data Della Creazione: 8 Maggio 2021
Data Di Aggiornamento: 1 Luglio 2024
Anonim
Indirizzamento diretto e indiretto
Video: Indirizzamento diretto e indiretto

Contenuto

Definizione - Cosa significa operatore indiretto?

Un operatore indiretto, nel con di C #, è un operatore utilizzato per ottenere il valore di una variabile a cui punta un puntatore. Mentre un puntatore che punta a una variabile fornisce un accesso indiretto al valore della variabile memorizzata nel suo indirizzo di memoria, l'operatore di riferimento indiretto dereferenzia il puntatore e restituisce il valore della variabile in quella posizione di memoria. L'operatore di riferimento indiretto è un operatore unario rappresentato dal simbolo (*).

L'operatore di riferimento indiretto può essere utilizzato in un puntatore a un puntatore a un numero intero, un array monodimensionale di puntatori a numeri interi, un puntatore a un carattere e un puntatore a un tipo sconosciuto.

L'operatore di riferimento indiretto è anche noto come operatore di dereference.

Un'introduzione a Microsoft Azure e Microsoft Cloud | In questa guida imparerai cos'è il cloud computing e in che modo Microsoft Azure può aiutarti a migrare e gestire la tua azienda dal cloud.

Techopedia spiega l'operatore indiretto

Il simbolo (*) viene utilizzato per dichiarare i tipi di puntatore e per eseguire l'indirizzamento del puntatore, mentre l'operatore "indirizzo-di" () restituisce l'indirizzo di una variabile. Pertanto, l'operatore di riferimento indiretto e l'indirizzo dell'operatore sono inversi l'uno dall'altro.

C # consente di utilizzare i puntatori solo in un'area non sicura, il che implica che la sicurezza del codice all'interno di quella regione non è verificata da Common Language Runtime (CLR). Nell'area non sicura, l'operatore indiretto può leggere e scrivere su un puntatore. Le seguenti istruzioni C # illustrano l'uso dell'operatore indiretto:
  • int a = 1, b; // Linea 1
  • int * pInt = & a; // linea 2
  • b = * pInt; // riga 3
Nella prima riga sopra, aeb sono variabili intere e a viene assegnato un valore di 1. Nella riga 2, l'indirizzo di a viene memorizzato nel puntatore intero pInt (riga 2). L'operatore dereference viene utilizzato nella riga 3 per assegnare il valore all'indirizzo indicato da pInt alla variabile intera b.

L'operatore di riferimento indiretto dovrebbe essere utilizzato per determinare un puntatore valido con un indirizzo allineato al tipo a cui punta, in modo da evitare comportamenti indefiniti in fase di esecuzione. Non deve essere applicato a un puntatore vuoto o a un'espressione che non è di tipo puntatore, per evitare errori del compilatore. Tuttavia, dopo aver lanciato un puntatore vuoto sul tipo di puntatore destro, è possibile utilizzare l'operatore di riferimento indiretto.

Quando si dichiarano più puntatori in una singola istruzione, l'operatore di riferimento indiretto deve essere scritto una sola volta con il tipo sottostante e non ripetuto per ogni nome di puntatore. L'operatore di riferimento indiretto è distributivo in C #, a differenza di C e C ++. Quando l'operatore di riferimento indiretto viene applicato a un puntatore nullo, si ottiene un comportamento definito dall'implementazione. Poiché questo operatore viene utilizzato in un con non sicuro, la parola chiave unsafe deve essere usata prima di essa insieme all'opzione / unsafe durante la compilazione. Questa definizione è stata scritta nel con di C #