Dupa cum ati dedus din titlu, am o intrebare despre pointeri. De fapt, mai multe.
1) Care e diferenta dintre char* p si char& p? Pentru char* p, in p se stocheaza adresa unei variabile. Pentru char& p, presupun ca in p se stocheaza tot o adresa de memorie, nu?
2) Am vrut sa fac o functie simpla invert care sa ia doua variabile si sa le inverseze intre ele. Singurul mod prin care se poate face asa ceva este cu pointeri, la argumentele functiei, in loc sa dai niste valori stocate in variabile, dai adresele variabilei.
Astfel:
void invert(char& a, char& b) //adica la argumente trebuie sa ofer doua valori de tip adresa, nu?
cand apelez functia in interiorul functiei main(), apelarea se face:
int x, y;
x=50;
y=100;
invert(x, y);
Si merge. Dar mi se pare ilogic, din moment ce x si y sunt echivalente cu 50 si respectiv 100. De ce acolo le ia drept adrese?
Daca incer sa apelez functia asa:
invert(&x, &y); adica la argumente sa fie adresele variabilelor, da eroare si spune ca nu poate face conversia.
Asa ca, poate cineva sa-mi explice cum sta treaba cu pointerii?
Lucrez in C++, compilator Borland.