为什么字符串对象需要#include <string>而不是字符串文字?

一个学生

当将字符串对象用于需要的变量和参数时#include <string>,又为什么不将其用于字符串文字呢?例如,您可以说cout << "This is a string literal";没有#include <string>

我正在使用Deitel Brothers的书学习C ++,并且在学习字符数组时想到了这个问题。

莫尔布德尼洛

字符串文字不是std::string对象,而是的数组const char
"This is a string literal"具有类型const char[25]

在大多数情况下(包括该情况),数组会隐式衰减为指向其第一个元素的指针,并且有一个operator<<重载const char*

在C ++中,“字符串”的含义有些不同,这非常令人困惑,但是过一会儿(然后拔头发和咬牙切齿),预期的含义就会从上下文中弄清楚了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么在Rust中使用字符串文字&str而不是String?

为什么String.prototype中的'this'引用对象类型,而不是字符串类型?

为什么字符串文字不是字符串?

为什么我们应该为字符串数据类型而不是其余的数据导入#include <string>?

为什么键入错误:<string>中的字符串要求字符串作为左操作数,而不是列表

为什么使用new运算符创建的String在字符串池中创建字符串文字

为什么String引用变量在Java中存储字符串而不是地址?

为什么“自动”将字符串声明为const char *而不是std :: string?

Golang:为什么regexp.FindAllStringSubmatch()返回[] []字符串而不是[] string?

为什么我的python代码返回text:'my string'而不是我的字符串?

需要“字符串”为:String

Java为什么要接受实际的字符串作为接受String对象的函数的参数?

为什么字符串文字不是prvalue

String::from() “o”和“ó”的字符串文字长度不同。为什么?

错误:格式字符串不是字符串文字

为什么会出现TypeError:'in <string>'需要将字符串作为左操作数,而不是在运行程序时列出错误?

string.match()返回字符串而不是数组

将string []文字转换为字符串类型的文字

为什么我的对象的值是函数而不是字符串?

为什么字符串不是值?

TypeError:'in <string>'需要将字符串作为左操作数,而不是ObjectListView wxPython的int

TypeError: 'in <string>' 需要字符串作为左操作数,而不是 dict_keys

错误:“TypeError: 'in <string>' 需要字符串作为左操作数,而不是列表”

TypeError:'in <string>'需要将字符串作为左操作数,而不是int

TypeError:'in <string>'需要将字符串作为左操作数,而不是元组

在<string>'中需要将字符串作为左操作数,而不是元组

'in <string>' 需要字符串作为左操作数,而不是列表

发生异常:TypeError'in <string>'需要将字符串作为左操作数,而不是Series

TypeError:'in <string>'需要将字符串作为左操作数,而不是列表