在通过阅读书籍学习 C++ 的过程中,我看到了这行(对我来说)奇怪的代码。
char ch('AB'); // Or char ch = 'AB';
这对我来说很奇怪,因为我不明白你可以分配给char
多个“字母”,没有任何例外。
cout << "Characters in ch: " << ch << endl; // Output B
为什么这有效?它的内部运作如何?是不是只保存最后一个字符而忽略其他字符?
它被称为一个多字符文字 http://en.cppreference.com/w/cpp/language/character_literal这是完全有效的 C++:
多字符文字,例如'AB'
, 有类型int
和实现定义的值。
[...]
多字符文字的许多实现使用文字中每个字符的值来按大端顺序初始化结果整数的连续字节,例如的价值'\1\2\3\4'
is 0x01020304
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)