我对这段代码感到好奇:
cout << 'test'; // Note the single quotes.
Run Code Online (Sandbox Code Playgroud)
给我一个输出1952805748.
我的问题:输出是内存中的地址还是什么?
我不知道C和C++允许multicharacter literal:不是'c'(C中的int类型和C++中的char),但'tralivali'(类型为int!)
enum
{
ActionLeft = 'left',
ActionRight = 'right',
ActionForward = 'forward',
ActionBackward = 'backward'
};
Run Code Online (Sandbox Code Playgroud)
标准说:
C99 6.4.4.4p10:"包含多个字符(例如,'ab')的整数字符常量的值,或包含未映射到单字节执行字符的字符或转义序列的值是实现定义的".
我发现它们广泛用于C4发动机.但是,当我们谈论平台独立序列化时,我认为它们并不安全.Thay也会让人感到困惑,因为看起来像字符串.那么什么是多字符文字的使用范围,它们对某些东西有用吗?他们是否只是为了与C代码兼容而使用C++?它们被认为是goto运算符的坏特征吗?