Descarcă prezentarea
Prezentarea se încărcă. Vă rugăm să așteptați
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 / / ( (
Prezentări similare
© 2024 SlidePlayer.ro Inc.
All rights reserved.