<< is overloaded to treat constchar* as string data rather than a pointer. It is done this way so that string literals (such as "example") get printed as text rather than addresses.
If you want to print the address, you'll have to cast the pointer to something else. void* is typical:
1 2 3 4 5 6 7 8 9 10
cout << static_cast<constvoid*>(c_str);
// or if you don't mind C style casting
cout << (constvoid*)(c_str);
// or... you could use const void from the start and avoid any casting:
constvoid* c_str = str.c_str();
cout << c_str;