Previzualizare referat:

Extras din referat:

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 în 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) în 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’;

Descarcă referat

Pentru a descărca acest document,
trebuie să te autentifici in contul tău.

Structură de fișiere:
  • Pointeri.doc
Alte informații:
Tipuri fișiere:
doc
Nota:
9/10 (1 voturi)
Nr fișiere:
1 fisier
Pagini (total):
4 pagini
Imagini extrase:
4 imagini
Nr cuvinte:
1 478 cuvinte
Nr caractere:
9 495 caractere
Marime:
25.39KB (arhivat)
Publicat de:
NNT 1 P.
Nivel studiu:
Facultate
Tip document:
Referat
Domeniu:
Limbaje de Programare
Predat:
la facultate
Materie:
Limbaje de Programare
Sus!