我已经看到新线路\n在我一直在研究的一些代码示例中使用了两种不同的方式.第一个是'\n'第二个,第二个是"\n".有什么区别,为什么要使用'\n'?
我理解'\n'代表一个字符并"\n"代表一个字符串,但这有关系吗?
mik*_*obi 25
'\n'是一个字符常量.
"\n"是一个指向等于{'\n', '\0'}(\n加上空终止符)的字符数组的指针
编辑
我意识到我解释了差异,但没有回答这个问题.
您使用哪一个取决于上下文.您可以使用'\n',如果你拨打的期望字符的功能,并且"\n",如果它需要一个字符串.
'\n'是一个字面意思."\n"是一个字符串文字(基本上是一个字符数组).
如果您将其写入普通流,则差异无关紧要.std::cout << "\n";具有相同的效果std::cout << '\n';.
在几乎所有其他背景下,差异都很重要.char通常不与字符数组或字符串互换.
所以例如std::string有一个构造函数,它接受一个const char*,但它没有一个构造函数,它采取一个char.你可以写std::string("\n");,但std::string('\n');不编译.
std::string还有一个构造函数,它需要char和复制它的次数.它没有一个需要a const char*和复制它的次数.因此,您可以编写std::string(5,'\n')并获取一行中包含5个换行符的字符串.你不能写std::string(5, "\n");.
您使用的任何函数或操作都将告诉您它是为char定义的,对于C样式的字符串,是通过重载还是两者都没有定义.
| 归档时间: |
|
| 查看次数: |
15692 次 |
| 最近记录: |