Wskaźnik a referencja

0

Może mi ktoś do tego kodu napisać co jest wskaźnikiem, a co referencją i dlaczego w 3 częściach adres wyświetla się inaczej (czyli najprościej ujmując napisać komentarze do linijek) bo ja już oczopląsów dostaję. Dzięki

 #include<iostream>
using namespace std;
int main()
{
int x = 0;
int *px = &x;
int **ppx = &px;

 cout << "x = " << x << endl;
 cout << "**ppx = " << **ppx << endl;
 cout << "*px = " << *px << endl << endl;
 cout << "&x = " << &x << endl;
 cout << "px = " << px << endl;
 cout << "&**ppx = " << &**ppx << endl;
 cout << "&*px = " << &*px << endl; 
 cout << "*ppx = " << *ppx << endl<< endl;

 cout << "&px = " << &px << endl;
 cout << "ppx = " << ppx << endl << endl;

 cout << "&ppx = " << &ppx << endl;

return 0;
}
2

Przecież tu nie ma żadnej referencji.

0

Wyświetlasz zmienną, zwartość wskaźnika który na nią pokazuje, wskaźnik który pokazuje na wskaźnik itd.

void funkcja(int &argument_przekazany_przez_referencję)
{
        //....
}

powyżej masz jak przekazać argument przez referencję, czyli oryginał zmiennej. Ale używając po porostu ampersanda wyświetlasz(w tym przypadku) adres danego obiektu/zmiennej.

0

a to co oznaczając poszczególne literały

*

&

oraz ich połączenie

0

* - operator wyłuskania wskaźnika;
& - operator adresu obiektu;

 
//	Referencja.
//	Przekazujesz do funkcji adres zmiennej typu int;
void foo(int &ref){
	ref = 0;
}
0
//deklarujesz zmienną
int i = 5;
//deklarujesz wsakźnik
//używając '&' zapisujesz w nim adres zmiennej i
int * wsk = &i;
//zwiększasz zmienną o jeden używając wskaźnika z operatorem '*'
*wsk++;
2

To zależy GDZIE.
int* zmienna -> gwiazdka oznacza że typem zmiennej jest wskaźnik do inta
*zmienna -> gwiazdka oznacza wyłuskanie/dereferencje czyli pobranie wartości z pamięci na którą wskazuje wskaźnik
&zmienna -> pobranie adresu zmiennej
void funkcja(int& zmienna) -> argumentem funkcji jest referencja do zmiennej, czyli nie zostanie utworzona lokalna kopia zmiennej wewnątrz funkcji i w efekcie zmiana wartości tej zmiennej wewnątrz funkcji będzie widoczna także poza funkcją (normalnie tak nie jest!)

1 użytkowników online, w tym zalogowanych: 0, gości: 1