我有下面的代碼片斷:瞭解特殊類型的接入的C++/C陣列
int ndigit[10] = {0,0,0,0,0,0,0,0,0,0};
void count() {
char c;
while (cin.get(c)) {
if (c>='0' && c<='9') {
ndigit[c-'0']++;
}
}
所以c
必須是0和9之間(含0和9),那麼,爲什麼有必要索引像ndigit[c-'0']
而不是僅僅ndigit[c]
?
如果我是正確的,在這兩種情況下,c
值可能會出現更多的再一次,這樣的ndigit[c-'0']
a的值被改寫反正...
我很欣賞你的智慧!
因爲''0'!= 0' – Biffen
不確定它是否符合作爲複製但具有高度相關性:http://stackoverflow.com/questions/15598698/why-does-subtracting-0-in-c-result在這個數字中的字符代表 – NathanOliver