Prezentarea se încărcă. Vă rugăm să așteptați

Prezentarea se încărcă. Vă rugăm să așteptați

Curs 9-Pointeri la variabile -Pointeri la siruri de caractere

Prezentări similare


Prezentarea pe tema: "Curs 9-Pointeri la variabile -Pointeri la siruri de caractere"— Transcriere de prezentare:

1 Curs 9-Pointeri la variabile -Pointeri la siruri de caractere

2 Variabile si adrese Declararea variabilelor standard int i=10,k[5];
float x=2.0,z[20],y=5. Aceste variabile ocupa un spatiu de memorie dupa cum se poate observa in tabelul de mai jos:

3 Definirea pointerilor
Pointer=o variabila care are ca si valoare o adresa de memorie Variabilele de tip pointer se pot clasifica in: Pointer la date=contine adresa unei variabile sau a unei constante Pointer la functii=contine adresa codului executabil al unei functii Pointer la obiecte=contine adresa unui obiect din memorie

4 Formatul de declarare al unui pointer:
tip * nume; Tip=tipul de baza al pointerului , defineste tipul variabilei la care indica aceasta; poate fi orice tip de variabila Nume=numele variabilei pointer

5 Operatorii specifici pentru pointeri
Operatorul de adresare(referentiere)=& (“adresa lui”) Operator unar care asociat unei variabile sau obiect, returneaza adresa de memorie a acelei variabile sau obiect !!!Dupa declarare pointerul trebuie initializat cu adresa unei variabile, altfel acesta nu poate fi utilizat

6 Operatorii specifici pentru pointeri
Operatorul de indirectare(dereferentiere)=* (“de la adresa” ) Este un operator unar, complementar lui &, care returneaza valoarea inregistrata la adresa de memorie specificata

7 Operatorii specifici pentru pointeri
Operatorul * nu trebuie confundat cu operatorul aritmetic de inmultire Operatorul & nu trebuie confundat cu operatorul & (AND) pentru biti Operatorii & si * au prioritate fata de toti operatorii aritmetici Intotdeauna tipul variabilei si tipul pointerului care indica catre adresa acelei variabile sunt aceleasi

8 Initializarea variabilelor pointer
Dupa declararea pointerului trebuie specificat catre ce anume indica acesta, deoarece implicit nu indica nimic

9 Ex. Expresii de atribuire cu pointeri: #include <stdio
Ex. Expresii de atribuire cu pointeri: #include <stdio.h> int main() {int x=1525, *p1,*p2; p1=&x; p2=p1; printf("p1= %p p2= %p\n",p1,p2);//afiseaza adresa lui x, nu valoarea sa! printf("x=%d\n",x); //afiseaza valoarea lui x printf(“x=%d”, *p1); //afiseaza valoarea lui x, echivalent printf(“x=%d”,*p2); return 0;} Efect: atat p1 cat si p2 indica spre x, specificatorul de format %p face ca printf() sa afiseze o adresa in formatul utilizat de calculator Rezultate afisate p1=0012FF78 p2=0012FF78 x=1525

10 Ex.2 Pointeri la caractere
Ex.1 Pointeri la intregi #include <stdio.h> int main(){ int i1, i2, *p1, *p2; i1 = 5; p1 = &i1; i2 = *p1 / ; p2 = p1; printf("i1 = %d, i2 = %d, *p1 = %d, *p2 = %d\n", i1, i2, *p1, *p2); return 0;} Ex.2 Pointeri la caractere int main() { char c = 'Q'; char *pc = &c; printf("%c %c\n", c, *pc); c = '/'; printf("%c %c\n", c, *pc); *pc = '('; printf("%c %c\n", c, *pc); Rezultate afisate i1 = 5, i2 = 12, *p1 = 5, *p2 = 5 Rezultate afisate Q Q / / ( (


Descărcați ppt "Curs 9-Pointeri la variabile -Pointeri la siruri de caractere"

Prezentări similare


Publicitate de la Google