Pointeri

Extras din referat Cum descarc?

Tema laboratorului: POINTERI

Pointerii sunt variabile care au ca valori adresele altor variabile (obiecte). Din punctul de vedere al continutului zonei de memorie adresate, se disting urmatoarele categorii de pointeri:
q pointeri de date (obiecte) - contin adresa unei variabile din memorie;
q pointeri generici (numiti si pointeri void) - contin adresa unui obiect oarecare, de tip neprecizat;
q pointeri de functii (vor fi prezentati ulterior)- contin adresa codului executabil al unei functii.

Exemplu:
int x, y, ptr;
// ptr- variabila pointer catre un int; x,y-variabile predefinite, simple, de tip int
x=5; cout<<"Adresa variabilei x este:"<<&x<<'n';
cout<<"Valoarea lui x:"<<x<<'n';
ptr=&x; // atribuire: variabila ptr contine adresa variabilei x
cout<<"Variabila pointer ptr are valoarea:"<<ptr;
cout<<" si adreseaza obiectul:"<< ptr<<'n';
y= ptr; cout<<"y="<<y<<'n'; // y=5
x=4; cout<<"x="<<x<<'n'; cout<<" ptr="<< ptr<<'n';
// x si ptr reprezinta acelasi obiect, un intreg cu valoarea 4
x=70; // echivalenta cu ptr=70;
y=x+10; // echivalenta cu y= ptr+10

Variabilele pointer, alaturi de operatorii de referentiere si de deferentiere, pot apare in expresii.
Exemple:
int x, y, q; q=&x;
q=8; // echivalenta cu x=8;
q=&5; // invalida - constantele nu au adresa
x=9; // invalida - x nu este variabila pointer
x=&y; //invalida: x nu este variabila pointer, deci nu poate fi folosita cu operatorul de indirectare 
y= q + 3; // echivalenta cu y=x+3;
q = 0; // seteaza x pe 0
q += 1; // echivalenta cu ( q)++ sau cu x++
int r; r = q; 
/* copiaza continutul lui q (adresa lui x) in r, deci r va pointa tot catre x (va contine tot adresa lui x)*/
double w, r = &w, r1, r2; r1= &w; r2=r1;
cout<<"r1="<<r1<<'n'; //afiseaza valoarea pointerului r1 (adresa lui w)
cout<<"&r1="<<&r1<<'n'; // afiseaza adresa variabilei r1
cout<<" r1= "<< r1<<'n';
double z= r1; // echivalenta cu z=w
cout<<"z="<<z<<'n';

Exemplu:
void v1, v2; int a, b, q1, q2;
q1 = &a; q2 = q1; v1 = q1;
q2 = v1; // eroare: unui pointer cu tip nu i se poate atribui un pointer generic
q2 = (int ) v1; double s, ps = &s;
int c, l; void sv;
l = (int ) sv; ps = (double ) sv;
(char ) sv = 'a'; /*Interpretare: adresa la care se gaseste valoarea lui sv este interpretata ca fiind adresa zonei de memorie care contine o data de tip char. */
Exemplu:
int a, pa, pb;
cout<<"&a="<<&a<<'n'; pa=&a; cout<<"pa="<<pa<<'n';
cout<<"pa+2"<<pa+2<<'n'; pb=pa++; cout<<"pb="<<pb<<'n';
int i=pa-pb; cout<<"i="<<i<<'n';


Fisiere in arhiva (1):

  • Pointeri.doc

Imagini din acest referat Cum descarc?

Promoție: 1+1 gratis

După plată vei primi prin email un cod de download pentru a descărca gratis oricare alt referat de pe site (vezi detalii).


Descarcă aceast referat cu doar 4 € (1+1 gratis)

Simplu și rapid în doar 2 pași: completezi adresa de email și plătești. După descărcarea primului referat vei primi prin email un cod promo pentru a descărca orice alt referat.

1. Numele, Prenumele si adresa de email:

ex. Andrei, Oana
ex. Popescu, Ionescu

Pe adresa de email specificată vei primi link-ul de descărcare și codul promo. Asigură-te că adresa este corectă și că poate primi e-mail-uri.

2. Alege modalitatea de plată preferată:


* La pretul afișat se adaugă 19% TVA.


Hopa sus!