我继承了以下代码,并想进一步了解所使用的索引。

...
char cpChMap[256];
memset(cpChMap, 0xff, 256);
for (i = 0; i < 10; i++)
    cpChMap['0' + i] = 0;
...

在[cpChMap[<character expression>]]之前,我从未见过用于索引和数组的char,有人可以解释它的工作原理或提供确定的引用,因为我似乎找不到合适的引用,并且我已经搜索了一段时间。

谢谢你的时间。

最佳答案

char是整数类型。它们可以在算术表达式中使用:

std::cout << '0' + 7 << std::endl;
'0''9'是连续的这一事实意味着'0' + 7具有相同的'7'值,这就是循环中的原因:
for (i = 0; i < 10; i++)
    cpChMap['0' + i] = 0;
cpChMap'0'使用索引48(与'9'相同,假定为ASCII)。

关于c++ - 奇数C++字符数组引用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24678049/

10-11 19:32