string str="abc"; char *p=str.data();
时间: 2024-05-20 17:14:24 浏览: 123
string和char*
4星 · 用户满意度95%
这段代码将一个字符串 "abc" 赋值给了一个名为 str 的 std::string 对象。然后,通过调用 std::string 类的成员函数 data(),它返回指向字符串 "abc" 的第一个字符的指针。由于 char *p 是一个指向字符的指针,因此将该指针初始化为 str.data() 是合法的。
需要注意的是,std::string 对象的生命周期比 char *p 更长。如果在 std::string 对象被销毁之后仍然使用指向其 data() 函数返回的指针,则会导致程序崩溃或未定义的行为。因此,在使用指向 std::string 对象中存储的字符串的指针时,必须确保 std::string 对象仍然有效。
阅读全文