Puntatori in c

Puntatori in c
I suggerimenti sono l'argomento più importante nel linguaggio di programmazione C. Nell'allocazione della memoria, ogni blocco in cui vengono archiviati qualsiasi dati è in grado di conservare 1 byte di informazioni. Il puntatore è la variabile che ci consente di archiviare l'indirizzo delle variabili a cui vogliamo puntare. Il valore degli stessi puntatori può essere cambiato per indicare diversi luoghi in memoria, il che è potente quando stiamo indicando un array perché sappiamo che gli elementi dell'array interiore sono uno accanto all'altro. Quindi, possiamo spostare il puntatore da un elemento all'elemento successivo semplicemente spostandosi nella memoria.

Ogni volta che viene dichiarata una variabile, la posizione della memoria viene automaticamente assegnata ad esse per impostazione predefinita, che viene utilizzata per contenere il valore che viene assegnato ad esso. La posizione assegnata alla variabile ha un indirizzo predefinito a cui è possibile accedere solo utilizzando i puntatori.

Sintassi
$ type *name variabile;

La sintassi per la dichiarazione del puntatore è un po 'diversa dalla dichiarazione di una variabile perché durante l'utilizzo dei puntatori, abbiamo entrambe le abilità per accedere all'indirizzo e al valore della variabile. Nella dichiarazione di puntatori, viene utilizzata la parola chiave "*" che indica che stiamo indicando la variabile "XYZ". Nella sintassi data, il tipo è il tipo di dati della variabile puntatore che definiremo e il "nome variabile" è la variabile che deve essere puntata.

Supponiamo che abbiamo creato una "var" variabile il cui valore si trova nell'indirizzo "3e97b57c".

Int var = 2;
Int *ptr;
ptr =&var;

Ora, definendo una variabile puntatore "PTR", il puntatore è definito usando l'operatore asterisco "*". La parola tecnica utilizzata per questo operatore è dereferencing. Per indicare l'indirizzo della variabile a cui dobbiamo accedere, useremo la parola chiave AMPERSAND e "&".

Come mostrato nella figura seguente, il puntatore PTR contiene l'indirizzo della variabile "var".

Esempio 1:
In questo esempio, implementiamo il nostro puntatore attraverso il quale visualizzeremo l'indirizzo della variabile e del valore variabile. Per implementare i puntatori, includeremo prima il nostro file di intestazione "stdio.H "e sappi che lo" stdio.h "è un file di intestazione che ci consente di eseguire le operazioni di input-output in c. Ora, passando alla nostra funzione principale (), usiamo i nostri puntatori.

#includere
Int main ()

int var = 10;
int *ptr;
ptr =&var;
printf ("Indirizzo di variabile var è: %x \ n", ptr);
printf ("Valore di variabile var è: %x \ n", *ptr);
return (0):

Nella funzione principale (), dichiareremo prima una variabile denominata "var" e gli assegneremo un valore di "10". Ora, "var" ha un valore di "10". Quindi, dichiareremo un puntatore del tipo intero, nominandolo "PTR". Per assegnare l'indirizzo della variabile "var" al puntatore, useremo l'AmperSand "&". L'AmperSand "&" è chiamato operatore di riferimento utilizzato per creare il puntatore o l'indirizzo delle informazioni che vengono archiviate in una posizione di memoria.

Ora, il puntatore è responsabile di tenere l'indirizzo della variabile "var". Nell'istruzione Printf, %D indica valori decimali e %x rappresenta che vogliamo che i numeri vengano fuori in esadecimale, il che è un po 'più facile da leggere. Stampiamo l'indirizzo della variabile che è "3e97b57c". Nella seconda istruzione di stampa, stampiamo il valore della variabile "var" usando il puntatore "PTR". Ora, come possiamo vedere nella prima affermazione, chiamiamo semplicemente il "PTR" senza l'asterisco "*" che ci consente di stampare l'indirizzo della variabile.

Come abbiamo discusso nell'introduzione, i puntatori detengono l'indirizzo delle informazioni memorizzate nella memoria. D'altra parte, quando visualizziamo il valore della variabile che viene memorizzata nella nostra memoria, chiamiamo il puntatore usando l'asterisco "*".

Come mostrato nella seguente screenshot, possiamo vedere l'output di entrambe le istruzioni di stampa. Il primo stampica l'indirizzo mentre il secondo sta stampa il valore di una variabile.

Esempio 2:
Nel codice seguente, cambieremo il valore di una variabile usando i puntatori. Come sappiamo, i suggerimenti sono la parte più importante della lingua C. Usandoli, possiamo ridurre il tempo e la complessità del codice e ci consente di gestire i dati illimitati.

#includere
int main ()

int myvar = 23;
int *myptr;
myptr = &myvar;
printf ("indirizzo di myvar = %p \ n", myptr);
printf ("valore di myvar = %d \ n", *myptr);
*myptr = 10;
printf ("valore aggiornato di myvar usando il puntatore è %d", *myptr);

Dopo aver incluso i file di intestazione, ci sposteremo nella nostra funzione principale in cui inizializziamo la variabile denominata "myvar" che è responsabile della detenzione del valore "23". E ora, inizializza un puntatore del tipo intero che è "myptr" indica l'indirizzo della variabile che dichiariamo nella linea superiore. Ora, nel nostro prossimo passaggio, assegniamo l'indirizzo della variabile "myvar" che viene memorizzata in memoria con il valore "23". Per fare ciò, utilizziamo la parola chiave AMPERSAND e "&" come abbiamo discusso nell'esempio precedente che AMPERSAND viene utilizzato per creare il puntatore o l'indirizzo della variabile memorizzata in una memoria.

Dopo aver assegnato l'indirizzo al puntatore, chiamiamo l'istruzione printf () per stampare il valore myvar e il suo indirizzo. Ora, per aggiornare il valore all'indirizzo specificato della variabile, utilizziamo un puntatore per aggiornarne il valore. Per fare ciò, chiamiamo l'indirizzo del puntatore usando il puntatore ASTERIST "*" che è "myptr". Quindi, assegnalo il valore che è "10" nel nostro caso. Quindi, stampiamo il valore passando l'istruzione aggiornata all'istruzione printf ().

Come visualizzato nel seguente frammento, si accede all'indirizzo della variabile utilizzando un puntatore e il valore viene archiviato a quell'indirizzo. Finalmente, visualizziamo il valore aggiornato di quella variabile.

Conclusione

In questa guida, abbiamo discusso brevemente dei puntatori della lingua C e dei metodi per implementarli. Abbiamo fatto del nostro meglio per spiegare l'implementazione dei puntatori e come usarli in modo efficiente in linguaggio c definendoli usando esempi. Il puntatore è utile per ridurre le dimensioni del codice e viene anche utilizzato per migliorare le prestazioni di enormi programmi. Puoi anche usare i puntatori per eseguire le varie attività come le operazioni aritmetiche, l'aggiornamento dei dati, ecc.