这是一个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
.....
这是什么法术?