use*_*914 2 c++ string pointers std
std::string.c_str()返回一个(const char*)值.我用Google搜索,发现我可以执行以下操作:
std::string myString = "Hello World";
char *buf = &myString[0];
Run Code Online (Sandbox Code Playgroud)
这怎么可能?&myString[0]是一个类型的对象std::string,那么它如何工作?
&myString[0]是一个类型的对象std::string
不,不是.myString[0]是对字符串的第一个字符的引用; &myString[0]是指向该角色的指针.运算符优先级是指它的意思,&(myString[0])而不是(&mystring)[0].
请注意,以这种方式访问,不能保证字符串将被零终止; 因此,如果您在期望零终止字符串的C样式函数中使用它,那么您将依赖于未定义的行为.
| 归档时间: |
|
| 查看次数: |
2486 次 |
| 最近记录: |