Here is my test code:
Code:
std::cout << &str << '\t' << (void *)&str[0] << '\t' << (void *)&str[1] << '\t' << (void *)&str[2] << '\t' << (void *)&str[3] << std::endl;
And here is the result:
Name:  Capture.PNG
Views: 492
Size:  4.9 KB

Why &str and &str[0] is not the same address? What is the sceret inside this?