In che modo il puntatore al puntatore funziona in c

In che modo il puntatore al puntatore funziona in c
I puntatori sono una parte cruciale della programmazione C che ti rende facile manipolare i dati e la memoria in un modo più importante. Tuttavia, il caso può arrivare quando è necessario manipolare un puntatore stesso ed è qui puntatore al puntatore entrerà nel settore.

Questo articolo discute il funzionamento del puntatore al puntatore del linguaggio di programmazione C.

Prima di dirigersi verso come puntatore al puntatore funziona, discutiamo per la prima volta cosa è puntatore al puntatore.

Qual è il puntatore al puntatore

Un puntatore è una variabile utilizzata per archiviare un altro indirizzo di memoria variabile. Mentre a puntatore al puntatore, indicato anche come il doppio puntatore è un puntatore che viene utilizzato per archiviare l'indirizzo di memoria di un altro puntatore.

Sintassi generale per usare il puntatore al puntatore in C

Quanto segue è la sintassi per utilizzare un puntatore al puntatore Nella programmazione C.

data_type ** variabile_name

IL puntatore al puntatore La variabile deve essere definita aggiungendo due asterischi al suo nome. Ad esempio, la seguente dichiarazione dichiara un puntatore al puntatore del tipo di dati int.

int ** var;

In che modo il puntatore al puntatore funziona in c

UN puntatore al puntatore agisce in modo simile a un normale puntatore, tranne per il fatto che modifica il valore effettivo associato al puntatore a cui punta. Per dirla in altro modo, l'indirizzo di memoria tenuto in un normale puntatore è in grado di essere cambiato. Consideriamo un semplice esempio:

int n = 10;
int *pptr1 = & n;
int ** pptr2 = &pptr1;

Nel codice sopra, abbiamo una variabile int che memorizza un valore intero. Abbiamo anche un puntatore chiamato "PPTR1" che memorizza l'indirizzo di memoria della variabile N. Dopodiché, il "PPTR2" viene utilizzato che memorizza l'indirizzo di memoria del puntatore pptr1.

Ora, se vuoi accedere ai valori di N, Devi solo dereference il puntatore due volte. Nella prima dereference, otterrai l'indirizzo di memoria di "PPTR1", Mentre nel secondo, otterrai il valore di N. Ora puoi ottenere il valore usando il "Printf ()" funzione.

Ecco un codice completo per utilizzare il puntatore al puntatore nella programmazione C.

#includere
int main ()
int n = 10;
int *pptr1 = & n;
int ** pptr2 = &pptr1;
printf ("Valore di n usando pptr2: %d \ n", ** pptr2);
restituzione 0;

Produzione

Possiamo anche allocare la memoria per una variabile puntatore in una funzione separata e quindi applicare quel puntatore nella funzione di chiamata. L'esempio dato dimostra come farlo.

#includere
#includere
#includere
void memory_allocation (char ** my_ptr)

* my_ptr = (char *) malloc (10 * sizeof (char));

int main ()

char *w;
memory_allocation (& w);
strcpy (w, "linuxhint");
printf ("%s \ n", w);
libero (w);
restituzione 0;

Nel programma sopra, il "allocazione della memoria" la funzione ha assegnato la memoria a PTR_1. IL PTR_1 agisce come un doppio puntatore e archiviato una stringa denominata "Linuxhint" che è stampato sullo schermo.

Produzione

Conclusione

IL puntatore al puntatore è un concetto utile nel linguaggio di programmazione C che consente di accedere indirettamente a un valore variabile tramite più livelli di puntatori. Con l'aiuto di puntatore al puntatore, Puoi manipolare un puntatore da solo. Le linee guida sopra menzionate ti aiutano a usare puntatore al puntatore Nella programmazione C poiché include anche alcuni esempi di base che aiutano a comprendere il concetto di base dietro puntatore al puntatore.