# std::basic_string_view<CharT,Traits>::data

< cpp‎ | string‎ | basic string view

constexpr const_pointer data() const noexcept; |  | (C++17 起)

返回指向底层字符数组的指针。该指针满足范围 [data(); data() + size()) 合法，且其中的值与视图的值对应。

### 参数

（无）

### 返回值

指向底层字符数组的指针。

### 复杂度

常数。

### 注解

不同于 std::basic_string::data() 和字符串字面量， `data()` 可以返回指向非空终止的缓冲区的指针。从而将 `data()` 传递给一个仅接收 `const CharT*` 并期待空终止字符串的子程序是一个典型错误。

### 示例

    #include <iostream>
    #include <cstring>
    #include <cwchar>
    #include <string>
    #include <string_view>
    int main()
    {
        std::wstring_view wcstr_v = L"xyzzy";
        std::cout << std::wcslen(wcstr_v.data()) << '\n';
        // OK ：底层字符数组为空终止

        char array[3] = {'B', 'a', 'r'};
        std::string_view array_v(array, sizeof array);
        // std::cout << std::strlen(array_v.data()) << '\n';
        // 错误：底层字符数组非空终止

        std::string str(array_v.data(), array_v.size()); // OK
        std::cout << std::strlen(str.data()) << '\n';
        // OK ： std::string 的底层字符数组始终为空终止
    }

输出：

    5
    3

### 参阅

front | 访问首个字符 (公开成员函数)
back | 访问最末字符 (公开成员函数)