Possible Duplicate:
Why is address of char data not displayed?
Here is the code and the output:
int main(int argc, char** argv) {
bool a;
bool b;
cout<<"Address of a:"<<&a<<endl;
cout<<"Address of b:"<<&b<<endl;
int c;
int d;
cout<<"Address of c:"<<&c<<endl;
cout<<"Address of d:"<<&d<<endl;
char e;
cout<<"Address of e:"<<&e<<endl;
return 0;
}
The output:
Address of a:0x28ac67
Address of b:0x28ac66
Address of c:0x28ac60
Address of d:0x28ac5c
Address of e:
My question is: Where is the memory address of the char? And why is it not printed?
Thank you.
Strings in C/C++ can be represented by char*
, the same type as &e
. So the compiler thinks you're trying to print a string. If you want to print the address, you could cast to void*
.
std::cout << static_cast<void *>(&e) << std::endl;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With