A s*_*ent 2 c++ string header-files
将字符串对象用于需要的变量和参数时,为什么会出现#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 ++中,“字符串”的含义有些不同,这非常令人困惑,但是过一会儿(然后拔头发和咬牙切齿),预期的含义就会从上下文中清楚了。