informatyka
Rafał: Informatyka−Programowanie − Co oznacza ten typ zmiennej?
Witam
Spotkałem się z takim definiowaniem tablic, zmiennych:
double& ExtMapBuffer[]
int& mCount
Co oznacza & i jakie ma zastosowanie?
3 lut 14:14
Dziadek Mróz:
& to operator zwany referencją na adres w pamięci.
Np. dla Twojego ExtMapBuffer adres w pamięci to 0xb563, więc wykonując takie działanie:
ExtMapBuffer == 0xb563 da wynik true
Gdybyś zadeklarował tą zmienną tak, bez &:
double ExtMapBuffer[]
to powyższe porównanie wykonamy tak:
&ExtMapBuffer == 0xb563 da wynik true
3 lut 14:37
Rafał: Studiuję sobie książke na temat OOPu w C++, teraz widzę, że referencje są trochę dalej. Dzięki
za wyjaśnienie.
3 lut 14:52
kuj: &ExtMapBuffer == 0xb563 da wynik true
no chyba nie
3 lut 14:52
Dziadek Mróz:
W skrócie zmienna typ& to stała, read−only.
3 lut 14:53
Dziadek Mróz:
#include <iostream>
using namespace std;
int main()
{
int a = 4;
int& b = a; // przypisanie b adresu a, tzn a i b są tym samym od tego momentu
cout << &a << " " << &b << endl;
cout << a << " " << b << endl;
/*
0x22fe98 0x22fe98
4 4
*/
a = 6;
cout << &a << " " << &b << endl;
cout << a << " " << b << endl;
/*
0x22fe98 0x22fe98
6 6
*/
b = 7;
cout << &a << " " << &b << endl;
cout << a << " " << b << endl;
/*
0x22fe98 0x22fe98
7 7
*/
return 0;
}
3 lut 15:18