Introduzione ai puntatori in C

In C o altri linguaggi di programmazione, abbiamo un concetto di variabile. Queste variabili vengono utilizzate per contenere i valori al suo interno. Durante la programmazione è possibile utilizzare tali variabili. Tuttavia, ci sono alcune attività che non richiedono variabili ma richiedono l'indirizzo di tali variabili. L'indirizzo delle variabili indica la posizione della memoria effettiva in cui tali variabili sono esistenti. In questo argomento, impareremo i puntatori in C. Possiamo definire il puntatore come un tipo di variabile che contiene l'indirizzo di qualsiasi altra variabile che potrebbe contenere un valore

Usi di puntatori nei linguaggi di programmazione e C

Ora, discutiamo del fatto che in C abbiamo effettivamente bisogno di un puntatore. Esistono molte attività come l'allocazione dinamica della memoria che richiede puntatori durante la programmazione in C. L'utilizzo di puntatori può essere svolto facilmente

Diversi modi di accedere all'indirizzo variabile in C

Proviamo a sapere quali sono i diversi modi in cui possiamo stampare l'indirizzo di una variabile in C.

Esistono due modi in cui possiamo effettivamente stampare l'indirizzo di una variabile. Questi due metodi sono:

  1. Utilizzando il metodo e commerciale (&)
  2. Usando il puntatore

Esaminiamo ogni metodo con un esempio

1. Utilizzando il metodo e commerciale (&)

In questo metodo, useremo il concetto di e commerciale per stampare l'indirizzo di una variabile

Vediamo questo con un esempio

#include
int main () (
double varNumValue= 10.2;
char varTextValue(10) = “abc”;
printf("The address of variable varNumValue: %x\n", &varNumValue );
printf("varTextValue variable address is : %x\n", &varTextValue );
return 0;
)

Ora copia lo snippet di codice sopra riportato ed eseguilo

Mostrerà il seguente output:

The address of variable varNumValue: a0665a48
The address of variable varTextValue is : a0665a3e

Tuttavia, si potrebbe vedere il diverso valore assegnato casualmente durante l'esecuzione dell'esempio

L'esempio di cui sopra non è molto usato ma vale la pena conoscerlo. Vediamo ora l'altro concetto di cui stiamo discutendo in questo argomento.

2. Usando il puntatore

Questo è un approccio moderno per accedere all'indirizzo di una variabile. Prima di usare il puntatore fateci sapere la sintassi generale della dichiarazione di un puntatore

  • La sintassi generale di dichiarare un puntatore - Una sintassi comune che usiamo per dichiarare una variabile è:

data_type *variable

Questo è un modo comune per dichiarare qualsiasi puntatore in C, qui data_type rappresenta il tipo di variabile il cui indirizzo deve essere memorizzato. * indica che la variabile dichiarata è un puntatore. una variabile viene semplicemente utilizzata per accedere al valore

Un semplice esempio di questo è:

double *var_text

Dopo aver discusso il concetto di sintassi generale di dichiarazione di un puntatore , fateci sapere come possiamo usare un puntatore nella programmazione

Per utilizzare un puntatore in C, in pratica è necessario seguire i tre passaggi seguenti:

  • Definizione della variabile puntatore
  • Assegnare l'indirizzo della variabile di cui vogliamo conservare l'indirizzo nella variabile puntatore
  • Ora, una volta che abbiamo una variabile puntatore con l'indirizzo, possiamo nuovamente recuperare il valore della variabile dall'indirizzo memorizzato nel puntatore. Questo potrebbe essere fatto usando * in C. * è semplicemente uno degli operatori unari

Usiamo i passaggi sopra menzionati con un esempio e quindi spiegheremo questo esempio passo dopo passo

Esempio

#include
int main () (
int varNumValue = 10;
int *ipointervarNumValue;
ipointervarNumValue = &varNumValue;
printf("Address of the variable varNumValue is: %x\n", &varNumValue );
printf("Address stored in the variable ipointervarNumValue is: %x\n", ipointervarNumValue);
printf("Value of the variable *ipointervarNumValue is: %d\n", *ipointervarNumValue );
return 0;
)

Ora copia lo snippet di codice sopra riportato ed eseguilo

Mostrerà il seguente output:

Address of the variable varNumValue is: bf7b7f94
Address stored in the variable ipointervarNumValue is: bf7b7f94
Value of the variable *ipointervarNumValue is: 10

Ora proviamo a capire l'esempio sopra

La riga int varNumValue = 10; dichiara semplicemente una variabile con valore 10

La seconda riga che è accanto ad essa: int * ipointervarNumValue; viene semplicemente dichiarato per memorizzare l'indirizzo della variabile

Il frammento di codice successivo che è: ipointervarNumValue = & varNumValue; viene utilizzato per contenere l'indirizzo della variabile. Qui, stiamo usando il concetto di e commerciale di cui abbiamo discusso in precedenza nell'articolo

Ora, possiamo semplicemente ottenere il valore e utilizzare un puntatore nel nostro frammento di codice

Ora, esaminiamo diversi tipi di puntatore in C

Tipi di puntatore in C

Esistono diversi tipi di puntatore in C. I tipi base di puntatore generalmente utilizzati sono:

  • Puntatore NULL
  • Puntatore ciondolante
  • Puntatori generici
  • Puntatore selvaggio

Spieghiamo ciascuno

1. Puntatore nullo: un puntatore nullo è un tipo di puntatore che non punta a nulla. Indica generalmente l'indirizzo di base del segmento. Nel caso in cui nulla sia assegnato al puntatore, ha un valore nullo

Viene generalmente utilizzato nei file di intestazione come stdio.h, alloc.h

2. Puntatore Dangler: questo tipo di puntatore può essere creato eliminando l'oggetto senza modificare il valore del puntatore

3. Puntatore generico: questo tipo di puntatore viene dichiarato utilizzando una variabile di tipo vuoto. Dal momento che è di tipo vuoto, quindi viene indicato come un puntatore generico. Questo tipo di puntatore non punta a nessun dato

4. Puntatore selvaggio: un puntatore che non è stato inizializzato è noto come puntatore selvaggio. Questo tipo di puntatore viene inizializzato durante il runtime quando è necessario utilizzarlo. Questo tipo di puntatore è noto come puntatore jolly

Conclusione

I puntatori in C vengono utilizzati per puntare all'indirizzo della variabile. Queste variabili vengono utilizzate per l'allocazione dinamica della memoria in C. Queste variabili vengono dichiarate con un asterisco in modo da mostrare che la variabile è un puntatore. Questi sono utilizzati nel file di intestazione nella programmazione.

Articoli consigliati

Questa è una guida ai puntatori in C. Qui discutiamo i diversi tipi e usi dei puntatori in C con metodi ed esempi. Puoi anche dare un'occhiata ai seguenti articoli per saperne di più -

  1. Che cos'è un linguaggio di programmazione?
  2. C vs C ++
  3. Pattern nella programmazione C.
  4. I migliori compilatori C.
  5. Guida ai puntatori in C ++
  6. Puntatori in C # con esempi

Categoria: