八进制转义序列和一个int数组-这是什么法术?

时间:2019-05-29 18:56:11

标签: c++ string escaping

这是一个C ++语言问题,我确信这是一个愚蠢的问题,因为我没有阅读整个手册...:)

考虑代码:

int t[] = {1, 2, 3};

int g (int i)
{
     return "\5\3\8"[t[i]];
}

a)“ aString” [1]-显然返回'S'

b)我了解字面转义序列,或者至少我认为我理解。因此,“ \ 5 \ 3 \ 8”应重新解释为“ \ x5 \ x38”,即第5个字符,第3个字符和字符“ 8”。

到目前为止一切都好吗?

然后,如果我要将下面的行写成一个整数变量

(int)"\5\3\8"[t[i]]

我应该得到5(i = 0),3(i = 1)或(int)'8',如果i = 2,则为56。...

这是怎么回事:

g(0)返回3

g(1)返回56

g(2)返回0

.....

这是什么法术?

0 个答案:

没有答案