&str is the address of the class instance. &str[0] is the address of the first element of the memory used by the class to hold the string characters. These need not be the same depending upon the class layout. The string class also has other member variables. The layout of the class is implementation dependent.