C – Pointeri

Reclame

Pointerele în C sunt ușor și distractive de învățat. Unele sarcini de programare C sunt realizate mai ușor cu pointerele, iar alte sarcini, cum ar fi alocarea dinamică a memoriei, nu pot fi efectuate fără a folosi pointeri. Așadar, devine necesar să înveți indicatori pentru a deveni un programator C perfect. Să începem să le învățăm în pași simpli și simpli.

După cum știți, fiecare variabilă este o locație de memorie și fiecare locație de memorie are adresa sa definită, care poate fi accesată folosind ampersand (&) operator, care denotă o adresă în memorie. Luați în considerare următorul exemplu, care tipărește variabilele definite –

Când codul de mai sus este compilat și executat, acesta produce următoarele result –

Address of var1 variable: bff5a400Address of var2 variable: bff5a3f6

Ce sunt pointerele?

Un indicator este o variabilă a cărei valoare este adresa altei variabile, adică adresa directă a locației memoriei. Ca orice variabilă sau constantă, trebuie să declarați un pointer înainte de a-l utiliza pentru a stoca orice adresă variabilă. Forma generală a unei declarații de variabilă a pointerului este –

type *var-name;

Aici, tipul este tipul de bază al indicatorului; trebuie să fie un tip de date C valid și var-name este numele variabilei pointer. Asteriscul * folosit pentru a declara un pointer este același asterisc folosit pentru multiplicare. Cu toate acestea, în această afirmație, asteriscul este utilizat pentru a desemna o variabilă ca un pointer. Aruncați o privire la unele dintre declarațiile valide ale indicatorului –

int *ip; /* pointer to an integer */double *dp; /* pointer to a double */float *fp; /* pointer to a float */char *ch /* pointer to a character */

Tipul de date real al valorii tuturor indicatorilor, indiferent dacă este întreg, float, caracter sau altfel , este același, un număr hexazecimal lung care reprezintă o adresă de memorie. Singura diferență între pointerii diferitelor tipuri de date este tipul de date al variabilei sau constantei către care indică indicatorul.

Cum se utilizează pointerii?

Există câteva operații importante, ceea ce vom face cu ajutorul indicatoarelor foarte frecvent. (a) Definim o variabilă pointer, (b) atribuim adresa unei variabile unui pointer și (c) accesăm în cele din urmă valoarea la adresa disponibilă în variabila pointer. Acest lucru se face utilizând operatorul unar * care returnează valoarea variabilei situată la adresa specificată de operandul său. Următorul exemplu folosește aceste operații –

Când codul de mai sus este compilat și executat, produce următorul rezultat –

Address of var variable: bffd8b3cAddress stored in ip variable: bffd8b3cValue of *ip variable: 20

Indicatori NULL

Este întotdeauna o practică bună să atribuiți o valoare NULL unei variabile pointer în cazul în care nu aveți o adresă exactă care să fie atribuită. Acest lucru se face în momentul declarării variabilei. Un pointer care este atribuit NULL este numit un pointer nul.

Pointerul NULL este o constantă cu o valoare zero definită în mai multe biblioteci standard. Luați în considerare următorul program –

#include <stdio.h>int main () { int *ptr = NULL; printf("The value of ptr is : %x\n", ptr ); return 0;}

Când codul de mai sus este compilat și executat, acesta produce următorul rezultat –

The value of ptr is 0

În majoritatea sistemelor de operare, programelor nu li se permite accesul la memorie la adresa 0 deoarece memoria respectivă este rezervată de sistemul de operare. Cu toate acestea, adresa memoriei 0 are o semnificație specială; semnalează că indicatorul nu este destinat să indice o locație de memorie accesibilă. Dar, prin convenție, dacă un pointer conține valoarea nulă (zero), se presupune că nu indică nimic.

Pentru a verifica dacă există un pointer nul, puteți utiliza o instrucțiune „if” după cum urmează –

if(ptr) /* succeeds if p is not null */if(!ptr) /* succeeds if p is null */

Pointerii în detaliu

Pointerii au multe concepte ușoare, dar sunt foarte importante pentru programarea C. Următoarele concepte importante ale indicatorului ar trebui să fie clare pentru orice programator C –

Sr.No. Concept & Descriere
1 Aritmetica indicatorului

Există patru operatori aritmetici care pot fi utilizați în indicatori: ++, -, +, –

2 Matrice de indicatori

Puteți defini matrici pentru a conține un număr de indicatori.

3 Pointer to pointer

C vă permite să aveți un pointer pe un pointer și așa mai departe.

4 Trecerea indicatorilor către funcții în C

Trecerea un argument prin referință sau prin adresă permite ca argumentul trecut să fie schimbat în funcția apelantă prin funcția apelată.

5 Return pointer din funcțiile din C

C permite unei funcții să returneze un pointer la variabila locală, variabila statică și memoria alocată dinamic.

Reclame

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *