Pobranie adresu zmiennej typu char

0

Witajcie,
nigdy wcześniej nie było mi to potrzebne a tu nagle mam problem. Prosty przykład:

int a;
char c;
cout << &a << endl; //działa świetnie - wyświetla adres zmiennej a.
cout << &c << endl; //nie rozumiem tego co wypisuje.

Szukałem na google, w tutorialu cplusplus.com, książkach (w tym Thinking in C++) i nic. Potrafię sobie z tym poradzić (void* vc = &c; cout << vc;), ale bardziej interesuje mnie przyczyna tego wydarzenia.

2

Kiedy próbujesz wypisać char * za pomocą std::cout wybierane jest przeciążenie operatora dla C-stringów. Żeby wypisać adres będziesz musiał użyć static_cast oraz typu void * (można powiedzieć, że to taki wskaźnik do wszystkiego, ważne, że zostanie wybrane odpowiednie przeciążenie funkcji):

cout << static_cast<void *>(&c) << endl;

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