Pointeri, adrese și valori: Diferență între versiuni
Sari la navigare
Sari la căutare
Fără descriere a modificării |
Fără descriere a modificării |
||
| (Nu s-au afișat 7 versiuni intermediare efectuate de același utilizator) | |||
| Linia 1: | Linia 1: | ||
Acest scurt program demonstrează diferența și asemănările dintre operatorul de referențiere ''&'' (determinarea adresei unei variabile) și dereferețiere ''*'' (accesare variabilei de la o adresă) | __TOC__ | ||
Înapoi la [[C++]] | |||
Acest scurt program demonstrează diferența și asemănările dintre operatorul de referențiere '''''&''''' (determinarea adresei unei variabile) și dereferețiere '''''*''''' (accesare variabilei de la o adresă) | |||
<syntaxhighlight lang="C++"> | <syntaxhighlight lang="C++"> | ||
Versiunea curentă din 23 martie 2025 17:49
Înapoi la C++
Acest scurt program demonstrează diferența și asemănările dintre operatorul de referențiere & (determinarea adresei unei variabile) și dereferețiere * (accesare variabilei de la o adresă)
#include <iostream>
using namespace std;
int a = 34;
int main() {
cout << "a se găsește la adresa &a: " << &a << endl;
return 0;
}
Rezultatul este:
tom@MacBook-Pro-Miron % ./adresa_simpla
a se găsește la adresa &a: 0x102f94000
#include <iostream>
using namespace std;
int valA = 10;
int valB = 92;
int* ptr = &valA; //pointerul va avea valoarea de la adresa valA
int* ptr2 = NULL;
char* car;
uint16_t* uint16t;
float* flt;
int main() {
cout << endl;
cout << "ce chestie ! avem un pointer ptr cu valoarea: " << *ptr << endl;
cout << "dar adresa ptr este ptr: " << ptr << endl;
cout << "adresa val este &val: " << &valA << endl;
cout << "iar adresa unui pointer pointer NULL este ptr2: " << &ptr2 << endl;
cout << "iar adresa unui pointer char este car: " << &car << endl;
cout << "iar adresa unui pointer float este flt: " << &flt << endl;
// schimbăm adresa ptr
ptr = &valB;
cout << "adresa ptr este acum: &val: " << ptr << endl;
cout << endl;
cout << "====================================" << endl;
cout << "------- Dimensiuni variabile -------" << endl;
cout << "====================================" << endl;
cout << endl;
cout << "dimensiunea unui int este de " << sizeof(int) << " octeți" << endl;
cout << "dimensiunea unui float este de " << sizeof(float) << " octeți" << endl;
cout << "dimensiunea unui double este de " << sizeof(double) << " octeți" << endl;
cout << "dimensiunea unui char este de " << sizeof(char) << " octeți" << endl;
cout << "dimensiunea unui uint16_t este de " << sizeof(uint16_t) << " octeți" << endl;
cout << endl;
cout << "===================================" << endl;
cout << "------- Dimensiuni pointeri -------" << endl;
cout << "===================================" << endl;
cout << endl;
cout << "dimensiunea este unui int pointer este: " << sizeof(ptr) << endl;
cout << "dimensiunea char pointer este: " << sizeof(car) << endl;
cout << "dimensiunea uint16_t pointer este: " << sizeof(uint16t) << endl;
return 0;
}