这段代码是否根据C++标准定义良好?看起来有点哈哈.
#includechar* GetPointer(std::string& s) { return &s[0]; }
标准是否确保该代码返回指向存储字符的数组中第一个元素的指针?
是.
basic_string的元素是连续存储的,即对于basic_string s,&*(s.begin()+ n)==&*s.begin()+ n对于[0,s.size中的任何n]( )),或等效地,指向s [0]的指针可以传递给期望指向CharT []数组的第一个元素的指针的函数.
来源:http://en.cppreference.com/w/cpp/string/basic_string