源代码如下。
cout << '\\' << endl; //OK, output is \
cout << '\\\\' << endl; //OK, output is an integer 23644, but why?
语句cout << '\\\\' << endl;
调用类ostream
的以下函数。
_Myt& __CLR_OR_THIS_CALL operator<<(int _Val)
我知道编写表达式'\\\\'
很奇怪,但我不明白它为什么不会失败。如何解释结果?
答案 0 :(得分:15)
这是一个多字符文字,类型为int
。
包含多个c-char的普通字符文字是多字符文字。包含单个c-char的多字符文字或普通字符文字,在执行字符中无法表示 set,有条件地支持,类型为int,并且具有实现定义的值。
你应该使用"\\\\"
,char const[3]
:两个\和最后一个NUL字节。