I guessed no, but this output of something like this shows it does
string s=\"\";
cout<<&s;
what is the point of having empty string
s
is a string
object so it has an address. It has some internal data structures keeping track of the string. For example, current length of the string, current storage reserved for string, etc.
More generally, the C++ standard requires all objects to have a nonzero size. This helps ensure that every object has a unique address.
9 Classes
Complete objects and member subobjects of class type shall have nonzero size.