Crea e usa una matrice di puntatori in C

Crea e usa una matrice di puntatori in C
Array e puntatori sono tra le strutture di dati più fondamentali della lingua C. Ci consentono di creare programmi flessibili e facili da gestire con solo poche righe di codice.

La maggior parte di noi ha familiarità con la creazione di array con tipi di dati come numeri interi, caratteri o galleggianti. Questa guida ti mostrerà come creare una serie di puntatori e usarla per archiviare i dati.

Come creare un array

Possiamo definire un array come una raccolta di articoli. Ad esempio, un array può archiviare nomi di 100 persone e simili.

Per dichiarare un array in C, utilizziamo la sintassi:

DataType arname [arrsize];

Qui, il tipo di dati si riferisce al tipo di array, che può essere un numero intero, un galleggiante, un carattere o un puntatore.

L'arrname si riferisce al nome dato all'array, che può essere qualsiasi termine descrittivo per la variabile nel tempo obbedisce alle regole di denominare una variabile in c.

Infine, l'ARRSIZE si riferisce al numero totale di articoli da archiviare nell'array. Questo valore è costante e immutabile una volta dichiarato.

Ad esempio, possiamo definire una serie di numeri interi per archiviare 10 valori come:

int myarray [10];

Possiamo anche definire e inizializzare un array nella stessa linea. Ad esempio, per definire l'array sopra e popolarlo con i valori richiesti, possiamo fare:

int myArray [10] = 1,2,3,4,5,6,7,8,9,10;

Possiamo anche fare lo stesso senza specificare esplicitamente la dimensione dell'array. Considera l'esempio seguente:

int myArray [] = 1,2,3,4,56,7,8,9,10;

Per accedere agli elementi in un array, utilizziamo il metodo di indicizzazione specificando il nome dell'array seguito dall'indice dell'elemento a cui desideriamo accedere.

Ad esempio, per accedere all'elemento all'indice 5, possiamo fare

printf ("%d", myarray [5]);

In questo caso, dovrebbe restituire il 6th elemento nell'array perché l'indicizzazione dell'array inizia a 0. Pertanto, il primo elemento è a 0, il secondo elemento a 1 e così via.

Possiamo anche usare il metodo sopra per modificare i valori in un array.

Ecco un esempio:

MyArray [5] = 5;

L'istruzione sopra modificherà il valore dell'array all'indice da 5 a 5.

C Puntatori

I puntatori sono variabili che possiamo utilizzare per archiviare gli indirizzi dei valori in un programma. Ad esempio, quando si definisce una variabile, viene assegnato un indirizzo di memoria a cui è possibile accedere utilizzando il
&varname;

Per esempio:

int i = 10;
printf ("%p", & i);

Il codice sopra dovrebbe fornire l'indirizzo per la variabile "i". Si noti che questo indirizzo può variare ogni volta che si esegue il programma.

Ecco un indirizzo di esempio:

0061FF1C

Dichiarare un puntatore

Per dichiarare un puntatore in C, utilizziamo il tipo seguito da un asterisco e il nome della variabile.

Per esempio:

int *ptr, i;

Per assegnare un indirizzo al puntatore, possiamo fare:

int i = 10;
ptr = & i;

Nell'esempio sopra, impostiamo l'indirizzo della variabile "i" su *ptr.

int *ptr, i;
i = 10;
ptr = & i;
printf ("%p", *ptr);

Accesso ai valori da un puntatore

Possiamo accedere ai valori memorizzati in un indirizzo puntatore utilizzando la notazione asterisco (*). Per esempio:

int *ptr, i;
i = 10;
ptr = & i;
printf ("%d", *ptr);

In questo caso, otteniamo il valore specifico memorizzato e non l'indirizzo del valore.

Array di puntatori

Mentre abbiamo creato una serie di valori interi negli esempi sopra, possiamo creare un array di un puntatore-basicalmente, un array che memorizza gli indirizzi di memoria.

Per fare ciò, possiamo usare la sintassi:

int *pTrarray [10];

In questo esempio, abbiamo un array di 10 puntatori di numeri interi, che ti consente di archiviare gli indirizzi di memoria di 5 variabili interi.

Ad esempio, possiamo avere il semplice codice di seguito:

#includere
int main ()
int *pTrarray [4];
int w = 100, x = 200, y = 300, z = 400;
pTrarray [0] = & w;
pTrarray [1] = & x;
pTrarray [2] = & y;
pTrarray [3] = & Z;
per (int i = 0; i< 4; i++)
printf ("Il valore %d ha l'adddress %d \ n", *pTrarray [i], pTrarray [i]);

restituzione 0;

Una volta compilato ed eseguito il codice sopra, dovremmo ottenere risultati simili a quelli seguenti:

Il valore 100 ha l'adddress 6422280
Il valore 200 ha l'adddress 6422276
Il valore 300 ha l'adddress 6422272
Il valore 400 ha l'adddress 6422268

Utilizzando questo metodo, possiamo accedere sia agli indirizzi che ai valori memorizzati nel puntatore dell'array.

Conclusione

In questa breve guida, abbiamo discusso di come utilizzare array e puntatori nella lingua C. Abbiamo anche discusso di come creare una serie di puntatori per archiviare gli indirizzi per vari valori.