Referințe și pointeri

Laborator
7/10 (1 vot)
Conține 1 fișier: pdf
Pagini : 14 în total
Cuvinte : 2617
Mărime: 65.52KB (arhivat)
Publicat de: Sorin Mihalache
Puncte necesare: 0
Profesor îndrumător / Prezentat Profesorului: Cristian Ionita
Laborator C++

Extras din laborator

In C++ exista doua modalitati de lucra cu adrese de memomorie: pointeri si referinte.

Pointeri

Pointerii sunt variabile care contin adresa unei alte zone de memorie. Ei sunt utilizati pentru a date care sunt cunoscute prin adresa zonei de momorie unde sunt alocate.

Sintaxa utilizata pentru declararea lor este:

tip *variabila_pointer;

Exemplu:

// declaratie variabile

int i = 17, j = 3;

// declaratie pointer

int *p;

Continutul memoriei in urma acestor declaratii va fi:

?2145173214821472146pijVariabilaContinutAdresa

Se observa ca pointerul la acest moment nu este initializat. Referirea prin intermediul pointerului neinitializat va genera o eroare la rularea programului.

In lucrul cu pointeri se folosesc doi operatori unari:

- &: extragerea adresei unei variabile

- *: referirea continutului zonei de memorie indicate de pointer (indirectare)

Exemplu:

// p ia adresa lui i

p = &i;

// modificarea

// continutul zonei

// de memorie

// pointate de p

(*p) = 6;

Un pointer poate fi refolosit, in sensul ca poate contine adrese diferite la diferite momente de timp:

// modificare adresa

p = &j;

Operatiile permise asupra pointerilor sunt urmatoarele:

- extragerea obiectului referit de catre pointer folosind operatorul * sau operatorul [] (prezentat in sectiunea Masive)

- extragerea adresei unui pointer folosind operatorul & (se va obtine un pointer la pointer)

- atribuirea intre doi pointeri care refera acelasi tip de data

- incrementarea/decrementarea (va muta pointerul inainte/inapoi cu un numar de bytes egal cu dimensiunea tipului referit)

- adunarea/scaderea cu o valoare intreaga (va muta pointerul inainte/inapoi cu un numar de bytes egal cu dimensiunea tipului referit inmultita cu valoarea intreaga)

- diferenta a doi pointeri de acelasi tip (se obtine numarul de elemente de tipul respectiv ce incap intre cei doi pointeri)

- compararea a doi pointeri

- conversia pointerilor (se realizeaza ca si pentru celelalte tipui folosind operatorul de cast)

Referinte

Referintele, ca si pointerii, sunt variabile care contin adresa unei zone de memorie. Semantic, ele reprezinta aliasuri ale unor variabile existente.

Referintele sunt legate de variabile la declaratie si nu pot fi modificate pentru a referi alte zone de memorie. Sintaxa folosita pentru declararea unei referinte este:

Tip & referinta = valoare;

Exemplu:

// declaratii variabile

int i = 6, j = 3;

// declaratie referinta

int& r = j;

Sintaxa utilizata pentru manipularea pointerului este aceeasi cea a variabilei ce care este legata (indirectarea este realizata automat de catre compilator). Toate modificarile aplicate referintei se vor reflecta asupra variabilei referite.

Preview document

Referințe și pointeri - Pagina 1
Referințe și pointeri - Pagina 2
Referințe și pointeri - Pagina 3
Referințe și pointeri - Pagina 4
Referințe și pointeri - Pagina 5
Referințe și pointeri - Pagina 6
Referințe și pointeri - Pagina 7
Referințe și pointeri - Pagina 8
Referințe și pointeri - Pagina 9
Referințe și pointeri - Pagina 10
Referințe și pointeri - Pagina 11
Referințe și pointeri - Pagina 12
Referințe și pointeri - Pagina 13
Referințe și pointeri - Pagina 14

Conținut arhivă zip

  • Referinte si Pointeri.pdf

Alții au mai descărcat și

Ingineria Sistemelor de Programe - Capitolul 2

Capitolul II Structuri complexe de date in ingineria programarii 1. Generalitati Variabilele utilizate in Limbajul C/C++, din punct de vedere al...

Probleme C++ Rezolvate

Problema 1: cmmdc(a, b) #include<stdio.h> #include<conio.h> //algoritmul lui Euclid //cel mai mare divizor comun pentru doua numere strict...

Pointeri

POINTERI Pointerul este o variabila care contine o adresa de memorie. Aceasta variabila contine adresa unei variabile. Avantajele utilizarii...

Laboratoare C++ (SDA)

1.1. Crearea şi afişarea unei liste Exerciţiul 1. Să se scrie programul pentru crearea unei liste simplu înlănţuite cu preluarea datelor de la...

Limbajul C

În continuare vom defini un calculator, ca fiind un sistem electronic de foarte mare complexitate, capabil de prelucrarea automata a datelor de...

Programare în C

Primul program C #include <stdio.h> int main(void) { printf(“Salut!\n”); printf(“Iata primul program C!”); return 0; } Caracterele...

Programare orientată obiect în C++

1. Redactarea programelor C 1.1. Generalitati Mediul Borland C a fost extins la Visual C si C++ Builder, adaptate programarii orientate obiect si...

Clase derivate. Moșteniri. funcții virtuale

CLASE DERIVATE.MOŞTENIRI.FUNCŢII VIRTUALE Derivarea claselor.Moşteniri Funcţii care nu se moştenesc integral Funcţii virtuale Derivarea...

Te-ar putea interesa și

C++

Un prim exemplu de program C++: #include <iostream.h> void main { int a; cout << "Dati un numar\n"; cin >> a; cout << "Ati tastat numarul "...

Programare orientată pe obiect C++

1. INTRODUCERE ÎN C++ Exista limbaje concepute strict pe baza conceptelor programării orientate pe obiecte (POO), de exemplu Simula sau Smalltalk....

Structuri de Date

Curs2 1.TIPURI DE DATE 1.1. DATE SI INFORMATII În practica se face deosebire între o data si o informatie. Exemplele oferite în cele mai multe...

Curs Programare C++

Cap 1. Reprezentarea informaţiilor 1.1 Reprezentarea numerelor întregi în sistemul binar Un număr natural se reprezintǎ ca o colecţie de cifre....

Laboratoare programarea orientată pe obiecte

1. Obiective - Formarea unei imagini generale, preliminare, despre programarea orientată pe obiecte (POO) și deprinderea cu noile facilitați...

Microprocesoare

1.1. CALCULATORUL, UN SISTEM AUTOMAT DE PRELUCRARE A DATELOR Calculatorul (mai precis, calculatorul numeric programabil) = sistem electronic...

C++

INTRODUCERE Limbajele de programare oferă utilizatorului posibilitatea de a folosi, în programare, date de tipuri diferite (tipuri predefinite) cu...

Programare orientată pe obiecte

Cap. 1 Paradigme de programare şi metode de proiectare a programelor Noţiunea de paradigmă se bazează pe un cuvânt ce provine din limbile latină...

Ai nevoie de altceva?