Explorați Cărți electronice
Categorii
Explorați Cărți audio
Categorii
Explorați Reviste
Categorii
Explorați Documente
Categorii
#include <iostream>
using namespace std;
int main()
{
int num = 25;
int* p;
p = #
cout << "adresa spre care indica pointerul este =" << p<<endl;
cout << "valoarea de la adresa indicata de p este =" << *p;
return 0;
}
1
Denumirea unui masiv este de fapt un pointer către primul său element. Daca rulăm urmatorul
cod putem observa urmatoarele:
#include <iostream>
using namespace std;
int main()
{
int v[4] = { 7, 1, 2, 6 };
cout <<"afis primul element "<< *v<<endl; // Afiseaza 7
cout << "afis adresa primului element "<<v; // Afiseaza adresa catre 7
return 0;
}
int main()
{
//un pointer poate lua mai multe valori diferite pe parcursul aceluiași program
2
Aplicatie curs
};
int main()
{
struct sistem* x = new sistem;
x->nume = "lenovo";
x->disc = 850;
x->memorie = 16;
x->consum = 80;
x->printval();
delete x;
//struct sistem* x = new sistem[20]; alocare pt 20 de elemente ale sistemulul
//delete[] x; eliberare memoriei
system("pause");
return 0;
}
3
cout << "memorie sistem " << memorie<<endl;
cout << "consum sistem " << consum<<endl;
}
};
int main()
{
struct sistem x ;
x.nume = "lenovo";
x.disc = 850;
x.memorie = 16;
x.consum = 80;
x.printval();
//delete x;
//struct sistem* x = new sistem[20]; alocare pt 20 de elemente ale sistemulul
//delete[] x; eliberare memoriei
system("pause");
return 0;
}
Aplicatie curs
class CDreptunghi {
int latime, inaltime;
public:
void set_values(int, int);
int aria()
{
return latime * inaltime;
}
};
int main() {
CDreptunghi x;//decl obiect cu un constr implicit------fara param
CDreptunghi* p;//pointer catre clasa
p = new CDreptunghi;
x.set_values(1, 2);//accesare membru prin obiectul x
p->set_values(3, 4);//accesare membru prin pointer
return 0;
}
4
Utilizarea lui new
Enunț 1
Se citesc cele n elemente întregi ale unui array (n dat de asemenea de la tastatură), se
calculează suma lor și se afișează pe un ecran curat atât elementele array-ului cât și suma
lor.
a) cu declararea array-ului ca având un număr maxim de 100 de elemente.
#include <iostream>
#include <conio.h>
using namespace std;
int main(){
int A[100];
int n, S=0;
cout<<"Dati numarul de elemente ale array-ului:"; cin>>n;
for (int i=0; i<n;i++)
{cout<<"Dati elementul A["<<i<<"]="; cin>>A[i];
S+=A[i];}
system("cls");
cout<<"Elementele array-ului sunt:\n";
for (int i=0; i<n;i++)
cout<<A[i]<<endl;
cout<<"Suma elementelor este:"<<S<<endl;
_getch();
return 0;}
b) cu alocarea dinamică a memoriei pentru array după citirea numărului de elemente din
array
5
Enunț 2
Afișarea elementelor a două array-uri utilizând o funcție void cu parametri
a) cele două array-uri sunt inițializate printr-o listă de elemente la declarare
#include <iostream>
#include <conio.h>
using namespace std;
b) se alocă dinamic memoria pentru fiecare din cele două array-uri după citirea numărului
de elemente pentru fiecare array
6
Pointers are variables which store the address of other variables in C++.
More than one variable can be modified and returned by function using
pointers.
Memory can be dynamically allocated and de-allocated using pointers.
Pointers help in simplifying the complexity of the program.
The execution speed of a program improves by using pointers.
Enunț 3
Declararea unui array de dimensiune constanta pentru care se aloca memoria la compilare
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{const int nMaxArr=5;
int Arr[nMaxArr];//se declara un array cu 5 elemente pentru care se aloca memoria la
compilare
//vom umple array-ul cu valorile 42, 43, 44, 45 si 46
for(int i=0;i<nMaxArr;i++)
Arr[i]=42+i;
// afisam valorile din array
for(int i=0;i<nMaxArr;i++)
7
cout<<"Arr["<<i<<"]="<<Arr[i]<<endl;
_getch();
return 0;
}
Enunț 4
Declararea unui array de dimensiune constanta pentru care se aloca memoria la executie
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{const int nMaxArr=5;
int *Arr=new int[nMaxArr];//se declara un array cu 5 elemente pentru care se aloca
memoria la exec.
//vom umple array-ul cu valorile 42, 43, 44, 45 si 46
for(int i=0;i<nMaxArr;i++)
Arr[i]=42+i;
// afisam valorile din array
for(int i=0;i<nMaxArr;i++)
cout<<"Arr["<<i<<"]="<<Arr[i]<<endl;
delete[] Arr; // se elibereaza memoria ocupata de array
_getch();
return 0;}
Enunț 5
Declararea unui array de dimensiune variabila (care va fi cunoscuta doar la executie)
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{int n;
cout<<"Dati numarul de elemente al array-ului:";cin>>n;
int *Arr=new int[n];//se declara un array cu n elemente pentru care se aloca memoria la
executie
//vom umple array-ul cu valorile 42, 43, 44, 45 si 46
for(int i=0;i<n;i++)
Arr[i]=42+i;
// afisam valorile din array
for(int i=0;i<n; i++)
cout<<"Arr["<<i<<"]="<<Arr[i]<<endl;
delete[] Arr; // se elibereaza memoria ocupata de array
_getch();
return 0;
}