【发布时间】:2016-02-04 17:04:11
【问题描述】:
好的,我正在研究 Bjarne 书中的例子。而且我知道单个字符由单引号分隔,例如'x'。
然后是用双引号分隔字符串,比如“Hello,!”
在这本书中,有时这是有意义的,有时是没有意义的。
例如:
cout << "Hello, " << first <<" << second << '\n'; //doesn't /n have single quotes?
cout << "Hello, " << first_name << " (age " << age << ")\n"; // why does /n have double quotes around it?
如果有人能解释这两个示例之间的语法差异,将不胜感激。
编辑-----------
cout
【问题讨论】:
-
单个字符可以是字符串。 \n 不是特殊情况。 “a”和“a”都有效
-
在第二个示例中,您需要双引号,因为引号中也有
)。单引号仅用于字符。因此,由于\n是一个字符,您可以将其包含在单引号中,但)\n是两个字符,因此您需要双引号来表示字符串 -
如果你想有原则,那么你会使用 std::endl
-
查看另一个related question。
-
在“\n”中,“\”是escape character。这意味着下一个字符具有特殊意义。在这种情况下,
\n表示“n”不是“n”,它是行尾。编译器将始终尝试将 '\' 之后的字符解释为特殊字符。如果你真的想要一个'\',你必须转义'\'并使用'\\'。