"\ x"如何在字符串中工作?

Nos*_*tap 7 c c++ hex

我正在编写一个C/C++程序,涉及将数字的十六进制表示形式放入字符串中,我对如何\x工作感到困惑.我见过人们写过诸如"\ xb2"之类的例子.在这种情况下,如果你想要b的十六进制后跟数字2或者你想要b2的十六进制,程序如何知道?另外,当它将它存储到记忆中时它会保存"\ x"字符还是只保存十六进制表示?

Oli*_*rth 9

从C99标准(6.4.4.4):

每个八进制或十六进制转义序列是可以构成转义序列的最长字符序列.

  • 找到了!我只需使用字符串连接并写入“\xff”“abc” (4认同)
  • @Nosrettap:不,翻译是在编译时完成的. (2认同)

Ken*_*rey 5

例如,字符串"123\x45"以十六进制存储为31 32 33 45.

根据 Oli 的回答,使用 '\x' 之后的最长有效值。

'\x' 不存储。任何转义序列都不会存储您在屏幕上看到的字符,而是存储指定的实际字符。例如,'\n' 实际上存储为换行符 0x0A。