Да. Согласно C ++ 0x FDIS 21.4.7.1/1, std::basic_string::c_str()
должен возвращать
указатель p
такой, что p + i == &operator[](i)
для каждого i
в [0,size()]
.
Это означает, что для данной строки s
указатель, возвращаемый s.c_str()
, должен совпадать с адресом начального символа в строке (&s[0]
).