C++中字符串文字的数据类型是什么
What is the datatype of string literal in C++?
我对字符串文字的数据类型感到困惑。是const char *
还是const char
?
它是一个
const char[N]
(与char const[N]
相同),其中N
是字符串的长度加上终止NUL
的长度(或者只是字符串的长度,如果您将"字符串的长度"定义为已经包括NUL
)。
这就是为什么你可以做sizeof("hello") - 1
来获取字符串中的字符数(包括任何嵌入的NUL
s);如果它是一个指针,它就不起作用,因为它总是你系统上指针的大小(减去一)。
>"Hello world"
const char[12]
(十一个字符加上' '
终止符)。
L"Hello world"
const wchar_t[12]
.
自 C++14 年以来,"Hello world"s
std::string
.
另请注意 C++11 添加的u8""
、u""
和U""
字符串文字表示法,分别指定 UTF-8、UTF-16 和 UTF-32 编码。非限定字符串文本的编码(即 ""
和L""
)是(并且一直是)实现定义的。
相关文章:
- 标准 N3337 5.2.10 第 7 条中的C++"类型"是什么意思?
- 如何声明一个标准::提升直方图的向量?提升直方图的类型是什么?
- RSA_verify中预期的数据类型是什么,无法验证从 Java 生成的签名
- 字符串中单个字符作为数组的数据类型是什么
- 如果我获得Integer和Double的产品,输出的数据类型是什么
- 通过插座发送的内容的数据类型是什么
- 向量中对元素的数据类型是什么?
- 对应于 AS3 编号(整数)的C++数据类型是什么?
- C++中字符串文字的数据类型是什么
- C++什么数据类型是thread_id,它能分配给变量吗
- Streamsize,Streamoff和其他与流相关的数据类型的实际类型是什么
- 什么数据类型是 16 位操作系统中的 32 位和 32 位操作系统中的 64 位
- C++ 中双引号内的字符串的数据类型是什么
- 将 c++ dll 导入 vb.net 时 float*(图像类型)的等效数据类型是什么?
- C++中最大的数据类型是什么
- C和c++中内置数据类型的类型是什么?
- c++中的布尔数据类型是什么?
- 读取纳秒值的数据类型是什么?
- vptr的数据类型是什么
- C++中字符串文字的数据类型是什么