C++中0x和'\ x'之间有什么区别?

yuf*_*pan 7 c++

我知道十六进制数通常在C/C++语言中以0x为前缀.例如,0x5A表示十进制的90.但我看到一个使用单引号字符的示例代码'\x'.

BYTE outputBuffer[index++] = '\x5A'; // instead of 0x5A
Run Code Online (Sandbox Code Playgroud)

意思是'\x5A'完全一样的0x5A吗?

如果是这样,为什么还有十六进制表示法的替代方法?

Ben*_*igt 9

对于一个角色来说,两者都是相同的.

但只有一个可以与其他普通字符混合成一个字符串. "ABC\x5A"

并且只有一个可用于初始化大型整数类型: long long x = 0x1234567812345678LL;

  • 在C++中,'\ x5A'的类型为`char`,而0x5A的类型为`int`.他们不平等. (6认同)