📅  最后修改于: 2023-12-03 15:29:51.515000             🧑  作者: Mango
C++中的string
类是一个表示字符串的容器,可以方便地进行字符串的操作。string.Data()
函数是该类的一个成员函数,用于返回该字符串对象底层存储的字符数组的起始地址,以const char*
类型返回。
以下是string.Data()
函数的函数原型:
const char* Data() const noexcept;
函数返回一个指向底层存储的字符数组的起始地址的指针,该指针的类型为const char*
。由于该函数并不会修改string
对象的内容,因此该函数会被声明为const
,表示该函数不会修改该对象。
以下是string.Data()
函数的使用方法:
#include <string>
#include <iostream>
int main()
{
std::string str = "Hello, world!";
// 在控制台输出字符串的起始地址
std::cout << "String address: " << (void*)str.data() << std::endl;
// 通过指针访问字符串
const char* ptr = str.data();
std::cout << "String content: ";
while(*ptr)
{
std::cout << *ptr++;
}
return 0;
}
以上代码创建了一个string
对象str
,调用Data()
函数获取该字符串的起始地址,并在控制台输出该地址。然后通过一个指针遍历该字符串,并在控制台输出该字符串的内容。
Data()
函数返回的是底层存储的字符数组的指针,因此该指针是指向该字符串对象的非临时缓存的指针。在调用函数后该字符串对象不应该被修改或析构,否则可能会导致指针指向一个非法地址。