我继承了以下代码,并想进一步了解所使用的索引。
...
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/