Mi a két függvény paramétere között a különbség?
void foo(int* pInt);
void foo(int*& rpInt);
Mi a lényeg, *& és a * között?
Nyilván pointerről van szó, a *& amit nem teljesen értek.
void foo(int*& rpInt);
Ilyen nem létezik.
Miért ne létezne?
Pl egy működő kód :
int gOne = 1;
void func(int*& rpInt);
int main(){
int nvar = 2;
int* pvar = &nvar;
func(pvar);
std::cout << *pvar;
}
void func(int*& rpInt){
rpInt = &gOne;
}
Esetleg konkrétan a *&-ra példa?
Sehol nem találok rá forrást.
Az alap pointert, referenciat értem.
Ahogy írta az utolsó, referencia pointerre.
Ugyebár alapvetően érték szerint adunk át paramétereket, ha egy pointer a paramétered, akkor a pointerről készül egy másolat, és az kerül átadásra. Ez azt jelenti, hogy ha megváltoztatod a pointer értékét (vagyis, hogy 'hova mutat'), akkor az csak a függvényen belüli pointerre fog vonatkozni. Viszont ha pointer referenciát adsz át, akkor referencia szerint adod át a pointert magát, magyarul ha megváltoztatod a függvényen belül a pointer által hivatkozott memóriacímet, az a függvényen kívüli pointert is módosítja.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!