Iは、次のコードスニペットを持って理解する:アクセス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']
の値は、私はあなたの知恵に感謝...とにかく
を上書きされます!あなたはX00(バイナリ0)を必要とする配列の最初の要素にアクセスするには
「0」!= 0' – Biffen
これは重複排除の対象となるが、関連性が高いかどうかは不明です。http://stackoverflow.com/questions/15598698/why-does-subtracting-0-in-c-result -in-the-the-char-is-representing – NathanOliver