Ce este Pointer în C?
Pointerul în C este o variabilă care stochează adresa unei alte variabile. Un pointer poate fi, de asemenea, utilizat pentru a se referi la o altă funcție de pointer. Un indicator poate fi incrementat / decrementat, adică pentru a indica către locația de memorie următoare / anterioară. Scopul indicatorului este de a economisi spațiu de memorie și de a obține un timp de execuție mai rapid.
Cum se utilizează indicatoarele în C
Dacă declarăm o variabilă v de tip int, v va stoca de fapt o valoare.
v este egal cu zero acum.
Cu toate acestea, fiecare variabilă, în afară de valoare, are și adresa sa (sau, pur și simplu, unde se află în memorie). Adresa poate fi recuperată prin plasarea unui semn cu semn (&) înaintea numelui variabilei.
Dacă imprimați adresa unei variabile pe ecran, aceasta va arăta ca un număr total aleatoriu (în plus, poate fi diferit de la rulare la rulare).
Să încercăm acest lucru în practică cu pointerul în C exemplu
Rezultatul acestui program este -480613588.
Acum, ce este un pointer? În loc să stocheze o valoare, un pointer va stoca adresa unei variabile.
Pointer Variable
Int * y = & v;
VARIABILĂ
|
POINTER
|
O valoare stocată într-o adresă de stocare / memorie numită
|
O variabilă care indică adresa de stocare / memorie a altei variabile
|
Declararea unui pointer
La fel ca variabilele, pointeri în programe C mming trebuie să fie declarate înainte de a putea fi utilizate în programul dvs. Pointerii pot fi numiți orice doriți, atâta timp cât respectă regulile de numire ale lui C. O declarație de pointer are următoarea formă.
data_type * pointer_variable_name;
Aici,
- data_type este tipul de bază al indicatorului pentru tipul de variabilă C și indică tipul variabilei către care indică indicatorul.
- Asteriscul (*: același asterisc utilizat pentru multiplicare) care este operator de indirecție, declară un pointer.
Să vedem câteva declarații de pointer valide în acest tutorial de indicatori C:
Inițializați un pointer
După declararea unui pointer, îl inițializăm ca variabile standard cu o adresă variabilă. Dacă indicii în programarea C nu sunt inițializați și folosiți în program, rezultatele sunt imprevizibile și potențial dezastruoase.
Pentru a obține adresa unei variabile, folosim operatorul ampersand (&), plasat înaintea numelui unei variabile a cărei adresă avem nevoie. Inițializarea indicatorului se face cu următoarea sintaxă.
Sintaxa indicatorului
pointer = &variable;
Un program simplu pentru ilustrarea indicatorului este dat mai jos:
Ieșire:
Address stored in a variable p is:60ff08Value stored in a variable p is:10
Operator |
Înțeles |
* |
servește 2 scopuri
- Declarația unui pointer
- Returnează valoarea variabilei de referință
|
& |
Servește doar pentru un scop
- Returnează adresa unei variabile
|
Tipuri de indicatori în C
Următoarele sunt diferitele tipuri de indicatoare în C:
Pointer nul
Putem crea un pointer nul atribuind valoare nulă în timpul declarației indicatorului. Această metodă este utilă atunci când nu aveți nicio adresă atribuită indicatorului. Un indicator nul conține întotdeauna valoarea 0.
Următorul program ilustrează utilizarea unui indicator nul:
#include <stdio.h>int main(){int *p = NULL; //null pointerprintf("The value inside variable p is:\n%x”,p);return 0;}
Ieșire:
The value inside variable p is:0
Pointer Void
În programarea C, un pointer gol este, de asemenea, numit ca un pointer generic. Nu are niciun tip de date standard. Un pointer gol este creat utilizând cuvântul cheie gol. Poate fi folosit pentru a stoca o adresă a oricărei variabile.
Programul următor ilustrează utilizarea unui pointer gol:
#include <stdio.h>int main(){void *p = NULL; //void pointerprintf("The size of pointer is:%d\n",sizeof(p));return 0;}
Ieșire:
The size of pointer is:4
Pointer sălbatic
Se spune că un pointer este un pointer sălbatic dacă nu este inițializat la nimic. Aceste tipuri de indicatoare C nu sunt eficiente, deoarece pot indica o locație de memorie necunoscută, care poate provoca probleme în programul nostru și poate duce la blocarea programului. Ar trebui să fii întotdeauna atent în timp ce lucrezi cu indicatori sălbatici.
Programul următor ilustrează utilizarea pointerului sălbatic:
#include <stdio.h>int main(){int *p; //wild pointerprintf("\n%d",*p);return
read more