Question

int test = 1;
cout << (long *) &test <<endl; //=0x7fff7370cefc
cout << (long) test <<endl; //= 1

Can someone explain what is happening in the first case? I get that long > int, thus the jibberish number, but what exactly is happening?

Was it helpful?

Solution

In this case:

cout << (long *) &test <<endl; //=0x7fff7370cefc

you in fact are giving the value, of the address of test variable, to be converted into a long pointer value and then printed. Which is exactly what you should get.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top